我有这个行的MySQL表:
+----------+--------+------+-------+
| list_uid | sku | qty | verif |
+----------+--------+------+-------+
| 49 | 024522 | 10 | 8 |
+----------+--------+------+-------+
我尝试使用此查询选择此行:
SELECT
*
FROM
ae_rf_list_picked
WHERE
`qty` != 0 AND
IFNULL(`verif`, 0) < `qty` AND
`sku` = '024522' AND
`list_uid` = 49
我不明白为什么此行不会被此查询返回。 如果我删除此部分
IFNULL(
verif
,0)&lt;qty
和
查询返回该行。
答案 0 :(得分:2)
也许您需要将verif和qty转换为数值
假设没有小数和&lt; 10个字符......
SELECT *
FROM ae_rf_list_picked
WHERE `qty` != 0
AND cast(IFNULL(`verif`, 0) as Numeric(10)) < cast(`qty` as numeric(10))
AND `sku` = '024522'
AND `list_uid` = 49