![]() ![]() |
||||||||||||||||
![]() ![]() ![]() ![]() |
||||||||||||||||
![]() |
![]() 7.2.7.4 Le type
|
SET member | Decimal value | Binary value |
a | 1 | 0001
|
b | 2 | 0010
|
c | 4 | 0100
|
d | 8 | 1000
|
Pour les valeurs qui contiennent plus d'un membre, l'ordre d'insertion n'importe pas. Une valeur peut être insérée plusieurs fois, elle n'apparaîtra plus qu'une seule fois dans le SET
, et sera placé dans l'ordre des membres, à la création du SET
. Par exemple, dans une colonne de type SET("a","b","c","d")
, alors les valeurs "a, d"
, "d, a"
et "d,a,a,d,d"
seront devenues "a, d"
, lorsqu'elle seront retournées par la base.
Les valeurs de type s SET
ont triées par ordre numérique. La valeur NULL
est placée avant toutes les autres valeurs non- NULL
.
En général, il est possible d'utiliser la clause SELECT
sur une colonne de type SET
, en utilisant l'opérateur LIKE
ou la fonction FIND_IN_SET()
.
mysql> SELECT * FROM Nom_table WHERE Nom_col LIKE '%valeur%'; mysql> SELECT * FROM Nom_table WHERE FIND_IN_SET(valeur, Nom_col)>0;
Mais les exemples suivants sont aussi corrects
mysql> SELECT * FROM Nom_table WHERE Nom_col = 'val1,val2'; mysql> SELECT * FROM Nom_table WHERE Nom_col & 1;
le premier exemple recherche une valeur exacte ('val1,val2'). Le second exemple recherche les valeurs qui contiennent le premier élément.
Pour visualiser toutes les valeurs d'une colonne de type, il faut utiliser SHOW COLUMNS FROM Nom_table LIKE Nom_col_enum
et détailler les valeurs de la deuxième colonne.