MySQL字段多項選擇是數據庫設計中常用的一種技術,也稱為枚舉字段。它可以用于一些字段只有有限的幾種類型時,避免使用復雜的判斷語句。
CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, sex ENUM('男', '女') DEFAULT '男' COMMENT '性別', hobby SET('唱歌', '跳舞', '游泳', '閱讀') DEFAULT NULL COMMENT '愛好' );
如上例所示,sex字段是一個枚舉類型,只有男和女兩個取值,而hobby字段是一個集合類型,可以選擇多個愛好。使用時,可以直接查詢或更新相應的值,例如:
-- 查詢所有男性用戶 SELECT * FROM users WHERE sex = '男'; -- 查詢所有喜歡唱歌和閱讀的用戶 SELECT * FROM users WHERE FIND_IN_SET('唱歌', hobby) AND FIND_IN_SET('閱讀', hobby); -- 更新某一用戶的愛好為游泳和閱讀 UPDATE users SET hobby = '游泳,閱讀' WHERE id = 1;
雖然使用枚舉和集合類型可以簡化一些操作,但是需要注意的是,這些字段不能進行索引,對于大型數據庫查詢可能會影響性能。