Datentyp ENUM
- Eine Liste von max. 65535 Werten kann definiert werden.
- Speichert nichts oder nur einen der definierten Werte.
- Beim speichern werden ungültige Werte als leere Zeichenfolge gespeichert.
- Bei Verwendung von
NOT NULL
ist der erste Wert in der Liste der Standard-Wert - Bei Verwendung von
NULL
istNULL
der Standard-Wert. ENUM
-Spalten immer alslatin1
Zeichensatz definieren.
Anwendungesbeispiele
1 2 |
ENUM('Herr','Frau','Familie'); ENUM('male','female'); |
Datentyp SET
- Eine Liste von max. 64 Werten kann definiert werden.
- Es können mehrere Werte aus der definierten Liste gespeichert werden.
- Beim speichern werden ungültige Werte ignorieren und eine Warnung ausgegeben.
Wichtig: Im Strict Modus erzeugt dies ein Error und gar nichts wird gespeichert.
Query Beispiele
1 2 |
SELECT * FROM tbl_name WHERE FIND_IN_SET('value', set_col) > 0; SELECT * FROM tbl_name WHERE set_col LIKE '%value%'; |
Anwendungesbeispiele
Weblinks
- Referenzseite von MySQL 5.6 zum Datentyp ENUM
- Referenzseite von MySQL 5.6 zum Datentyp SET
- Boolesche Werte in MySQL – Etwas zur Performance der Datentypen TINYINT, ENUM, VARCHAR
- http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/