MySql枚举enum类型使用_要注意什么
MySql枚举enum类型是否应该使用,枚举类型要注意什么,有时候有点懵,这边做下笔记
如下:
CREATE TABLE `enum2tinyint` ( `types` enum('none','success','fail','delete','skip','1') DEFAULT NULL, `type` tinyint(1) NOT NULL, KEY `types` (`types`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
正常带引号插入enum:
1 2 | INSERT INTO `test`.`enum2tinyint` (`types`, `type`) VALUES ('1', '1'); 1 1 |
PHP的弱类型问题,特别是对int类型的情况,实践如下:
如果没有带引号插入enum字段后如下(是第一个值none):
1 2 | INSERT INTO `test`.`enum2tinyint` (`types`, `type`) VALUES (1, '1'); none 1 |
如果没有带引号插入enum字段后如下(是第2个值success):
1 2 | INSERT INTO `test`.`enum2tinyint` (`types`, `type`) VALUES (2, '1'); success 1 |
结论:要插入enum的值,字段必须加引号,不加引号当然是数字,数字就是key,不是value。
原文: https://www.jb51.net/article/53426.htm