MySQL 数据类型 enum和set 使用注意问题

江河/ 2023年04月04日/ WordPress/ 浏览 2048

MySQL 中的数据类型 enum,类似于 html form 表单中的单选项,在几个合法的值中选择一个。


MySQL 中的数据类型 set,类似于 html form 表单中的多选项,在几个合法的值中选择几个。


enum 和 set 的值都是字符串类型的,但是同时也支持数字值。


比如,设置 enum 的值为 enum('v1', 'v2', 'v3', 'v4'),每个值都会对应一个数字,v1->1,v2->2,v3->3,v4->4。


类似的,设置 set 的值为 set('v1', 'v2', 'v3', 'v4'),各自对应的数字则为 v1->1,v2->2,v3->4,v4->8。数字 7 则代表 1+2+4 即 'v1', 'v2', 'v3'。


如果 emum 的值设置为 enum('4', '3', '2', '1'),这时候极易出现bug,因为值与值对应的数字为:'4'->1,'3'->2,'2'->3,'1'->4。在程序中稍不留意,就会搞错;所以尽量不要把 enum 和 set 的值设置为纯数字字符串。


发表评论

暂无评论,抢个沙发...

客服 工单