当WHERE条件不为true时,MySql Select查询返回记录
MySQL查询返回一条记录,即使条件不满足当WHERE条件不为true时,MySql Select查询返回记录,mysql,select,conditional-statements,Mysql,Select,Conditional Statements,MySQL查询返回一条记录,即使条件不满足 SELECT * FROM `orders` WHERE order_id = '10000R' 没有与此处给定的WHERE条件匹配的记录。 但是MySQl返回一个order_id=10000的记录 看起来好像WHERE条件忽略了引号中的alpha。 如果查询中有任何错误,或者这是MySql错误,请帮助我。order\u id可能是某种类型的整数字段。MySQL将字符串“1000R”转换为整数1000。这就是为什么你会得到结果。这不是一个bug。我假
SELECT * FROM `orders` WHERE order_id = '10000R'
没有与此处给定的WHERE条件匹配的记录。
但是MySQl返回一个order_id=10000的记录
看起来好像WHERE条件忽略了引号中的alpha。
如果查询中有任何错误,或者这是MySql错误,请帮助我。order\u id可能是某种类型的整数字段。MySQL将字符串“1000R”转换为整数1000。这就是为什么你会得到结果。这不是一个bug。我假设
order\u id
是一个int
,MySql隐式地强制转换varchar'10000R'
以匹配列的数据类型,该列会剥离尾部的'r'
请参阅MySql文档中的“”。确保您的订单id字段不是整数或其他数字字段。如果是,它可能会忽略后面的alpha
MySql表数据类型为VARCHAR。
请更改您的数据类型。。。。这是你能得到的三个最快的答案