MySql ENUM vs SET
From MySql Documentation:
ENUMvalue must be one of those listed in the column definition, or the internal numeric equivalent thereof. The value cannot be the error value (that is, 0 or the empty string). For a column defined as
ENUM('a','b','c'), values such as
'ax'are invalid and are rejected.
SETvalue must be the empty string or a value consisting only of the values listed in the column definition separated by commas. For a column defined as
SET('a','b','c'), values such as
'a,b,c,d'are invalid and are rejected.
Errors for invalid values can be suppressed in strict mode if you use
UPDATE IGNORE. In this case, a warning is generated rather than an error. For
ENUM, the value is inserted as the error member (
SET, the value is inserted as given except that any invalid substrings are deleted. For example,
'a,x,b,y'results in a value of