Samedi 17 Mai 2008 
Homepage
   Ordre alphabétique
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
   Par catégories
Moteur (139)
Annuaire (1384)
Spécialisé (466)
Payant (42)
   Par pays
   Par langue
   PHP - MYSQL
Manuel PHP
Manuel MYSQL
Portion de code
   Outils webmasters
Générer Méta-tags
Générer .htaccess
   Partenaires
Bouches du rhone
Camargue
Arles
Cybersaladelle
Arles-Inform
Vietnam
 
MYSQL Le type SET
Un SET est une chaîne qui peut avoir zéro ou plusieurs valeurs, chacune doit être choisie dans une liste de valeurs définies lors de la création de la table. Les valeurs des colonnes SET composées de plusieurs membres sont définies en séparant celles-ci avec des virgules (‘,’). Ce qui fait que la valeur d'un membre de SET ne peut contenir lui même de virgule.

Par exemple, une colonne définie en tant que SET("un", "deux") NOT NULL peut avoir l'une de ces valeurs :

""
"un"
"deux"
"un,deux"

Un SET peut avoir au plus 64 membres.

A partir de la version 3.23.51, les espaces en trop sont automatiquement effacés des membres de SET lorsque la table est créée.

MySQL enregistre les valeurs de SET numériquement. Le bit de poids faible de la valeur correspond alors au premier élément de la liste. Si vous utilisez une valeur SET dans un contexte numérique, les bits des éléments dans cet ensemble seront mis à un, et les autres à zéro. Par exemple, vous pouvez obtenir un entier à partir d'un ensemble comme ceci :

mysql> SELECT col_set+0 FROM nom_de_table;

Si un nombre est enregistré dans une colonne SET, les bits un à un de ce nombre représenteront les éléments placés dans cet ensemble. Supposons qu'une colonne est spécifiée en tant que SET("a","b","c","d"), les membres ont alors les valeurs suivantes :

SET membre Valeur décimale Valeur binaire
a 1 0001
b 2 0010
c 4 0100
d 8 1000

Si vous assignez 9 à cette colonne, cela donne 1001 en binaire, ce qui fait que les valeurs du premier et quatrième membres "a" et "d" sont sélectionnés et la valeur résultante est "a,d".

Pour les valeurs se composant de plus d'un membre du SET, l'ordre des membres n'a pas d'importance lors des insertions. Le nombre d'occurrence d'un élément n'importe pas non plus. Lorsque la valeur sera lue ultérieurement, chaque élément n'apparaîtra qu'une seule fois, et dans l'ordre donné à la déclaration de la colonne. Par exemple, si une colonne est spécifiée comme SET("a","b","c","d"), alors "a,d", "d,a", et "d,a,a,d,d" seront tous représentés par "a,d".

Si vous spécifiez une valeur incorrecte dans une colonne SET, la valeur sera ignorée.

Les valeurs de SET sont triées numériquement. La valeur NULL précède toutes les autres.

Normalement, vous exécuterez un SELECT sur une colonne SET en utilisant l'opérateur LIKE ou la fonction FIND_IN_SET() :

mysql> SELECT * FROM nom_de_table WHERE set_col LIKE '%value%';
mysql> SELECT * FROM nom_de_table WHERE FIND_IN_SET('value',set_col)>0;

Mais ce qui suit fonctionnera aussi :

mysql> SELECT * FROM nom_de_table WHERE set_col = 'val1,val2';
mysql> SELECT * FROM nom_de_table WHERE set_col & 1;

La première requête cherche les lignes qui correspondent exactement. La seconde ne cherche que les lignes contenant le premier membre du set.

Si vous voulez connaître toutes les valeurs possible d'une colonne SET, vous devez utiliser : SHOW COLUMNS FROM nom_de_table LIKE nom_colonne_set et étudier la définition du SET dans la seconde colonne.


MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
 
   Menu
Ajouter un moteur
Faire un lien
Annuaire
   Ressources
Ban 468 x 60
Ban 234 x 60
Ban 120 x 60
Logo 88 x 31
Templates
Textures
Police de caractère
Gifs animés
Cliparts
Avatars
Icones
   Gifs animés
Animaux
Alimentation
Personnage
Transport
Sport
Musique
Nature
Objet
   Cliparts
Cuisine
Enfants
Femmes
Machines
Mains
Medecine
Ordinateurs
   Services divers
Programme TV
Sortie Cinéma
Sortie DVD
 
Copyright © 2006. Universurf. All rights reserved
Cybersaladelle.com - Camargue.net - Bouches-du-rhone.com - LesAlpilles.com - Arles-camargue.com - Universmicro.com
Les-saintes-maries-de-la-mer.com - Lessaintesmariesdelamer.com - Camargue-Arles.com - Camargue.org - Mejanes.com
Universurf.com - Universurf.fr - Universurf.net - Universurf.ch