MySQL 查询返回一条记录,即使条件不满足。
SELECT * FROM `orders` WHERE order_id = '10000R'
没有与此处给出的 WHERE 条件相匹配的记录。但是 MySQl 返回一条 order_id = 10000 的记录
看起来 WHERE 条件忽略了引号内的 alpha。如果查询中有任何问题或者这是 MySql 错误,请帮助我
MySQL 查询返回一条记录,即使条件不满足。
SELECT * FROM `orders` WHERE order_id = '10000R'
没有与此处给出的 WHERE 条件相匹配的记录。但是 MySQl 返回一条 order_id = 10000 的记录
看起来 WHERE 条件忽略了引号内的 alpha。如果查询中有任何问题或者这是 MySql 错误,请帮助我
我假设这order_id
是一个int
,并且 MySql 隐式转换 varchar'10000R'
以匹配列的数据类型,从而去除尾随'r'
.
请参阅MySql 文档中的“表达式评估中的类型转换”。
order_id 可能是某种类型的整数字段。MySQL 会将字符串 '1000R' 转换为整数 1000。这就是为什么您要返回结果。这不是一个错误。
确保您的 order_id 字段不是整数或其他数字字段。如果是,它可能会忽略尾随的 alpha。
MySql 表数据类型是 VARCHAR。请更改您的数据类型。