Mysql vrachar字段检查零失败
我有一个varchar字段状态,其值为“New”、“close”等 当我尝试sqlMysql vrachar字段检查零失败,mysql,mariadb,Mysql,Mariadb,我有一个varchar字段状态,其值为“New”、“close”等 当我尝试sql时,从status=0的表中选择* 它返回的结果具有状态。它没有返回空状态 它不会在status=1时返回任何结果 知道为什么这个0检查在varchar上失败了吗status='0'正常工作如果我理解正确,您希望获取status=Null的所有行,因此您应该执行以下操作: SELECT * FROM table where status is Null; 您可以在此处进行检查:例如,在以下表格订单上: SELEC
时,从status=0的表中选择*
它返回的结果具有状态。它没有返回空状态
它不会在status=1时返回任何结果
知道为什么这个0
检查在varchar上失败了吗status='0'
正常工作如果我理解正确,您希望获取status=Null的所有行,因此您应该执行以下操作:
SELECT * FROM table where status is Null;
您可以在此处进行检查:例如,在以下表格订单上:
SELECT * FROM orders where comments is Null;
或者如果你想要一个你应该使用的网站
SELECT * FROM orders where comments is not Null;
一般来说,不应该将varchar字段与数字(如0或1)进行比较
编辑:
你为什么认为这是错误的?这和你想象的完全不同,请看:-mysql非常努力地转换和比较你在查询中给出的内容
因此,从您的示例中,如果您有一些状态为“1”的行,您的查询将生成该行,正如该链接中的引用所述:
有许多不同的字符串可以转换为值1,例如“1”、“1”或“1a”)
我只是问为什么mysql在sql错误时返回结果!!