Vous consultez les articles taggés mysql
Nov
15

Limite de caractères de la fonction Group_concat Mysql

Author Appo    Category SQL     Tags , , , ,

Si vous utilisez la fonction Group_concat de mysql, il faut savoir que cette fonction a une limite de caractère par défaut (1024 pour mon cas). Ce qui est traître, c’est que mysql n’indique pas d’erreur et va tronquer le résultat retourné.

Pour contourner cette limite il suffit de lancer la requête suivante avant votre requête contenant le group_concat

SET [SESSION | GLOBAL] group_concat_max_len = nbre de caractères;

La valeur doit aussi certainement être modifiable dans un fichier de configuration de mysql.

Sep
18

MySQL : Comment effectuer un toggle sur un champ ?

Author Nico    Category SQL     Tags , , ,

Petite astuce rapide.

Mettons-nous en situation. Nous avons une table utilisateur avec un champ actif qui peut contenir les valeurs 1 ou 0 selon que l’utilisateur est actif ou pas.

Nous souhaitons, via une requête SQL, inverser l’état de ce champ sans faire de test en programmation. Voici comment faire.

Lire la suite

Fév
10

Fonction SQL COALESCE

Author Appo    Category SQL     Tags , ,

Fonction SQL COALESCE

Aujourd’hui j’ai découvert une fonction SQL suite à un besoin particulier. Cette fonction c’est COALESCE, elle permet de retourner le premier élément non-NULL de la liste.

Exemple :

SELECT COALESCE(NULL,1);

Cette requete renverra 1 car c’est la première valeur de la liste non NULL.

Lire la suite

Oct
14

Inscrire MySQL en tant que service sous windows

Author Nico    Category SQL     Tags , ,

Lors de l’installation manuelle de MySQL sous Windows (au moins dans MySQL 4), le service ne s’enregistre pas automatiquement.

Pour enregistrer le service, se positionner dans le répertoire bin de MySQL et entrer la commande :

mysqld --install

Enfin, démarrer le service MySQL et vérifier que le lancement du service est bien « automatique »: démarrer>exécuter>cmd puis services.msc

Référence : http://dev.mysql.com/doc/refman/5.0/fr/windows-start-service.html

Août
13

[Mémo] Backup Mysql en ligne de commande + compression du fichier

Manipulation à effectuer pour faire un dump d’une base puis pour compresser le fichier sql

mysqldump ami2ha > backupAMI220081112.sql
 
tar -zcvf backupAMI220081112.tar.gz backupAMI220081112.sql

Manipulations pour décompresser et importer le fichier :

tar -zxvf backupAMI220081112.tar.gz
mysql -u UTILISATEUR -pPASSWORD
 
use NOMDELABASE
 
\. /home/www/ami2-chr/backupAMI220081112.sql
Juil
9

MySQL : la fonction GROUP_CONCAT()

Author Nico    Category SQL     Tags , ,

La fonction GROUP_CONCAT() de MySQL permet de concaténer les résultats d’un groupe.

Par exemple, si on veut récupérer les ID des utilisateurs pour les mettre dans un tableau:
avec une requête classique :

SELECT ID FROM utilisateur;

On devra ensuite parcourir les résultats un par un pour les ajouter au tableau (avec mysql_fetch… en PHP)

avec GROUP_CONCAT() :

SELECT GROUP_CONCAT(CAST(ID AS CHAR)) FROM utilisateur;

Au lieu d’avoir autant de lignes de résultat que l’on a trouvé d’utilisateurs, on n’aura ici qu’une seule ligne de résultats. Les ID seront séparés par des virgules. On se passe ainsi d’une boucle, puisqu’on sait qu’on a un résultat unique. On peut ensuite éclater la chaîne pour en faire un tableau (fonction explode() en PHP).

Quelques remarques :

  • On remarque la présence de la fonction CAST(… AS CHAR) dans l’exemple ci-dessus. Comme le résultat de la requête est une chaîne (valeurs séparées par des virgules), les valeurs à grouper doivent être converties en CHAR. On doit donc utiliser CAST() dès lors qu’on ne groupe pas des valeurs de type chaîne.
  • ATTENTION : GROUP_CONCAT() tronque le nombre de résultats d’après la valeur d’une constante MySQL (group_concat_max_len, par défaut fixée à 1024 bits). Il convient d’augmenter cette valeur (globalement avec GLOBAL ou seulement pour la session avec SESSION) de la manière suivante :
    SET SESSION group_concat_max_len = 1000000

Pour la documentation officielle, voir le site de MySQL.

Cet article vous a-t-il été utile ? N’hésitez pas à laisser un commentaire ci dessous.

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes