The SET Type See String Type Storage Requirements for storage requirements for the  SET  type. See Section 11.3.1, “String Data Type Syntax”  for  SET  type syntax and length limits. When retrieved, values stored in a  SET  column are displayed using the lettercase that was used in the column definition. Note that  SET  columns can be assigned a character set and collation. For binary or case-sensitive collations, lettercase is taken into account when assigning values to the column. MySQL stores  SET  values numerically, with the low-order bit of the stored value corresponding to the first set member. If you retrieve a  SET  value in a numeric context, the value retrieved has bits set corresponding to the set members that make up the column value. For example, you can retrieve numeric values from a  SET  column like this: If a number is stored into a  SET  column, the bits that are set in the binary representation of the number determine the set members in the column value. For a column specified as  SET(’a’,’b’,’c’,’d’) , the members have the following decimal and binary values. If you assign a value of  9  to this column, that is  1001  in binary, so the first and fourth  SET  value members ’a’  and  ’d’  are selected and the resulting value is  ’a,d’ . For a value containing more than one  SET  element, it does not matter what order the elements are listed in when you insert the value. It also does not matter how many times a given element is listed in the value. When the value is retrieved later, each element in the value appears once, with elements listed according to the order in which they were specified at table creation time. Suppose that a column is specified as SET(’a’,’b’,’c’,’d’) : If you insert the values  ’a,d’ ,  ’d,a’ ,  ’a,d,d’ ,  ’a,d,a’ , and  ’d,a,d’ : Then all these values appear as  ’a,d’  when retrieved: If you set a  SET  column to an unsupported value, the value is ignored and a warning is issued: 2047 mysql>  INSERT INTO myset (col) VALUES  -> (’a,d’), (’d,a’), (’a,d,a’), (’a,d,d’), (’d,a,d’); Query OK, 5 rows affected (0.01 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql>  SELECT col FROM myset; +------+ | col | +------+ | a,d | | a,d | | a,d | | a,d | | a,d | +------+ 5 rows in set (0.04 sec) mysql>  CREATE TABLE myset (col SET(’a’, ’b’, ’c’, ’d’)); mysql>  SELECT  set_col +0 FROM  tbl_name ; SET  Member Decimal Value Binary Value ’a’ 1 0001 ’b’ 2 0010 ’c’ 4 0100 ’d’ 8 1000