MySQL不返回零列为零

问题描述

我在以下查询中遇到一个奇怪的问题

grep "#\‘om"

结果

SELECT id,productIDs FROM discount_codes WHERE productIDs=0 ORDER BY productIDs DESC

id 149不为null或零,但作为结果返回

enter image description here

谁能告诉我这怎么发生的??

解决方法

将字符串与数字进行比较时,它将首先将字符串转换为数字。将字符串,11,4转换为数字会产生0,因为它不是以数字开头。

如果您要查找一个空字符串,请使用该字符串,而不要使用数字0

SELECT id,productIDs 
FROM discount_codes 
WHERE productIDs='' 

如果您还想匹配一个明确的0,请将其匹配为字符串而不是数字。

SELECT id,productIDs 
FROM discount_codes 
WHERE productIDs IN ('','0')