如何用mysql创建一个where子句来过滤varchr字段中与0不同的所有值?

时间:2015-10-10 11:23:36

标签: mysql

我想在我的表中检索具有与0不同的值的所有结果。 我有一个Varchar列,里面的值是0或字符串。 我想要检索所有非0的结果 我试过了

SELECT * FROM `book` `t` WHERE user_id= 62 AND payer != 0
SELECT * FROM `book` `t` WHERE user_id= 62 AND payer >= 0

我不明白为什么上面的查询会检索所有结果,包括付款人列中有0的onse

2 个答案:

答案 0 :(得分:2)

引用0

SELECT * FROM `book` `t` 
WHERE user_id= 62 
AND payer <> '0'

否则,MySQL会尝试将您的列值转换为数字,以便与数字0进行比较。但转化结果为0,然后用户62的所有记录都将匹配,因为0 = 0

答案 1 :(得分:0)

试试这个它会起作用......用引号:

SELECT * FROM `book` `t` WHERE user_id= 62 AND payer != '0'

如果您需要使用IS NULL

,也要检查NULL值