ENUM是枚舉類型,它雖然只能保存一個值,卻能夠處理多達65535個預定義的值。下面是我寫的一個mysql語句
CREATE TABLE student(
id INT(11) PRIMARY key auto_increment,
name VARCHAR(10) not null,
sex ENUM('boy','girl','secret') DEFAULT 'secret'
)ENGINE=INNODB
如果sex列中插入了除bor,girl,secret之外的其它字符,則視為空字符串
1 每個枚舉值都有一個索引:
- 列出的元素被分配從1開始的索引值。
- 空字符串作為錯誤值的索引值為0。可以使用select語句找出那些被指定無效枚舉值的數據行。
SELECT * FROM tbl_name WHERE enum_col=0;
- NULL的索引為NULL。
- 這里的索引只是指出枚舉表里該元素的位置,和表索引不同。
2 最多可以有65535個不同的元素值(實際限制小於3000)。
3 枚舉值不能是0或空字符串(雖然存在特殊情況)
4.enum在底層的存儲方式是以整型進行存儲的,比如這樣的字段sex enum('male' , 'female' , 'both' , 'unknow')在查詢時where sex='male'和where sex=1是等效的