提问人:Austin Xian 提问时间:12/20/2022 更新时间:12/20/2022 访问量:28
MySQL 条件“equal”显示条件“like”属性
mysql condition 'equal' shows condition 'like' attributes
问:
select * from order_info where order_id = 48;
上面的mysql命令显示是一个非常简单的句子,但是下面的结果似乎不符合我的期望,它更像是like条件。检索结果
我不知道字段类型是否会影响结果,因为字段“order_id”是 varchar 类型。当我将条件更改为“其中 order_id = '48'”时,它符合我的期望。
谁能告诉我为什么会这样?为什么条件“相等”会显示出意想不到的结果?
我希望结果应该是空的,因为表中没有order_id等于 48 的记录。
答:
0赞
P.Salmon
12/20/2022
#1
考虑一下——
SELECT CAST('48KKKK' AS INT);
你可能会期望它失败,它没有,结果是 48。您的查询在比较之前隐式转换订单 ID,因为您正在与整数进行比较,因此您的查询结果是正确的,并且需要记住这一点。
评论
0赞
Austin Xian
3/28/2023
感谢您的回复,但我仍然想知道为什么它会认为订单 ID “48”等于“48jkt3....”。即使在从 48 隐式转换为“48”之后?
评论
WHERE