我正在尝试完成以下sql语句
预期结果只是image_url的值为0
从
tour_product
中选择product_id,image_url,其中image_url = 0
但是我在下面的图片中显示所有行
任何人都可以帮助我为什么会发生这种情况。
答案 0 :(得分:2)
您的image_url
字段数据类型为字符串,因此不接受数字,因此您使用单引号''。
喜欢
SELECT product_id, image_url FROM tour_product WHERE image_url = '0'
答案 1 :(得分:1)
您正在将字符串与整数进行比较。那么,MySQL怎么办?
它做了您可能没有想到的事情。它将字符串转换为整数。它通过转换前导字符来实现。如果没有前导数字,则该值为零。
道德?不要混合类型。逻辑将是:
where image_url = '0'
或更可能,您需要类似的东西:
where image_url <> ''
答案 2 :(得分:1)
尝试一下
为此,您正在寻找CHAR_LENGTH()以获取字符串中的字符数。
SELECT product_id,image_url FROM tour_product where CHAR_LENGTH (image_url) = 0
OR
为此获得全零值
SELECT product_id,image_url FROM tour_product where CHAR_LENGTH (image_url) = '0';