当WHERE条件不为真时,MySql Select查询返回记录

时间:2012-11-16 21:33:41

标签: mysql select conditional-statements

MySQL查询返回记录,即使条件不满意。

SELECT * FROM `orders` WHERE order_id = '10000R'

没有与此处给出的WHERE条件匹配的记录。 但MySQl返回order_id = 10000

的记录

看起来WHERE条件忽略引号内的alpha。 如果查询中有任何错误,请帮助我,或者这是一个MySql错误

4 个答案:

答案 0 :(得分:3)

我假设order_idint,并且MySql隐式地转换varchar '10000R'以匹配列的数据类型,这会删除尾随{{1} }}

请参阅MySql文档中的“Type Conversion in Expression Evaluation”。

答案 1 :(得分:2)

order_id可能是某种类型的整数字段。 MySQL会将字符串'1000R'转换为整数1000.这就是你得到结果的原因。这不是一个错误。

答案 2 :(得分:0)

确保您的order_id字段不是整数或其他数字字段。如果是,则可能忽略了尾随的alpha。

MySQL integer comparison ignores trailing alpha characters

答案 3 :(得分:-1)

MySql表数据类型是VARCHAR。 请更改您的数据类型。

相关问题