MySql枚举enum类型使用_要注意什么

lys2019年07月11日 0条评论

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