MYSQL中 ENUM 类型的 查询坑点

CREATE TABLE `address` (
  `is_default` enum('0','1') NOT NULL DEFAULT '0' COMMENT '1默认收货地址',
) ENGINE=InnoDB AUTO_INCREMENT=8196 DEFAULT CHARSET=utf8 COMMENT='买家地址信息表';

 

查询条件是enum类型的字段时,如果是想比较emun值就要传字符串,enum类型每个枚举的值都会有个隐形的索引,如果比较的值是整型将会引用enum索引对应的值,enum的索引以1开始,enum可以类比成PHP这样的索引数组

[
    1 => '0', 枚举值为0
    2 => '1', 枚举值为1
]

以上数据表结构为查询实例:

where is_default = 1 //实际上在查询时会转换为where is_default = '0'
where is_default = 2 //实际上在查询时会转换为where is_default = '1'
where is_default = '0' //实际上在查询时会转换为where is_default = '0'
where is_default = '1' //实际上在查询时会转换为where is_default = '1'

 

听说enum字段插入值为整数时荟报错,有待查证https://blog.youkuaiyun.com/u012643122/article/details/52643686

参考资料:https://www.cnblogs.com/skillCoding/archive/2012/03/14/2395404.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值