mysql vrachar零失败现场检查

4szc88ey  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(195)

这个问题在这里已经有答案了

mysql:为什么将“string”与0进行比较会得到true(3个答案)
两年前关门了。
我有一个varchar字段状态,其值为“new”、“close”等
当我尝试sql时 select * from table where status=0 它返回的结果具有状态。它不返回空状态。
在status=1时不返回任何结果。
知道为什么吗 0 varchar检查失败? status='0' 工作正常

rjee0c15

rjee0c151#

如果我理解正确,您希望获得status=null的所有行,因此应该执行以下操作:

SELECT * FROM table where status is Null;

您可以在这里查看:http://www.mysqltutorial.org/tryit/ 例如,在具有以下内容的表订单上:

SELECT * FROM orders where comments is Null;

或者如果你想要你应该使用的网站

SELECT * FROM orders where comments is not Null;

一般来说,不应该将varchar字段与数字(如0或1)进行比较
编辑:
你为什么认为这是错的?只是和你想象的不同,请看:https://dev.mysql.com/doc/refman/8.0/en/type-conversion.html -mysql非常努力地转换和比较您在查询中给出的内容。
因此,在您的示例中,如果您有一个status='1'的行,那么您的查询将产生该行,正如该链接中引用的那样:
有许多不同的字符串可以转换为值1,例如“1”、“1”或“1a”)。

相关问题