Services webmasters
Partenaires
Jeux concours gratuits
 
Sensibilité à la casse pour les noms
<<<
Variables utilisateur Variables système
>>>

6.1 Structure du langage
6 Référence du langage MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Literals: Comment écrire les chaînes et les nombres
Noms de bases, tables, index, colonnes et alias
Sensibilité à la casse pour les noms
->Variables utilisateur
Variables système
Syntaxe des commentaires
Est-ce que MySQL est sensible aux mots réservés ?

6.1.4 Variables utilisateur

MySQL supporte les variables utilisateur spécifiques à la connexion avec la syntaxe @variablename . Un nom de variable consiste de caractères alpha-numériques, basés sur le jeu de caractères courant, de '_' , '$' , et '.' . Le jeu de caractères par défaut est ISO-8859-1 Latin1. Cette valeur peut être changée en utilisant l'option --default-character-set de mysqld . Le jeu de caractères utilisé pour les données et le stockage .

Les variables n'ont pas besoin d'être initialisés. Elles sont à NULL par défaut et peuvent contenir un entier, un réel ou une chaîne. Toutes les variables d'un thread sont automatiquement libérées lorsque le thread se termine.

Vous pouvez déclarer une variable avec la syntaxe de SET :


SET @variable= { expression entier | expression réel | expression chaîne }
[,@variable= ...].
Vous pouvez aussi assigner une valeur à une variable avec d'autres commande que SET . Par contre, dans ce cas là, l'opérateur d'assignation est := au lieu de = , parce que = est réservé aux comparaisons dans les requêtes autres que SET :

mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1  | @t2  | @t3  |
+----------------------+------+------+------+
|                    5 |    5 |    1 |    4 |
+----------------------+------+------+------+
Les variables utilisateur peuvent être utilisés là où les expressions sont allouées. Notez que cela n'inclut pas pour l'instant les contextes où un nombre est explicitement requis, comme ce qui est le cas avec la clause LIMIT dans une requête SELECT , ou la clause IGNORE nombre LINES dans une requête LOAD DATA . Note : dans une requête SELECT , chaque expression est n'évaluée que lors de l'envoi au client. Cela signifie que pour les clauses HAVING , GROUP BY , ou ORDER BY , vous ne pouvez vous référer à une expression qui implique des variables qui sont définies dans la partie SELECT . Par exemple, la requête suivante ne produira pas le résultat escompté :

mysql> SELECT (@aa:=id) AS a, (@aa+3) AS b FROM nom_de_table HAVING b=5;
La raison est que @aa ne contiendra pas la valeur de la ligne courante, mais celle de id pour la dernière ligne acceptée.

<< Variables utilisateur >>
Sensibilité à la casse pour les noms Structure du langage Variables système
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -