mysql-选择image_url = 0但返回所有行?

时间:2019-05-09 13:59:00

标签: mysql sql

我正在尝试完成以下sql语句

预期结果只是image_url的值为0

  

tour_product中选择product_id,image_url,其中image_url = 0

但是我在下面的图片中显示所有行

enter image description here

任何人都可以帮助我为什么会发生这种情况。

3 个答案:

答案 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';