SELECT * FROM plugin_referral_code WHERE code=0;
返回此记录
什么!为什么呢?
答案 0 :(得分:1)
MySQL不会为该查询返回错误的结果。请注意,最重要的网站使用MySQL或其分支,因此假设这样的查询无法正常工作是不合逻辑的。
您正在将土豆与西红柿进行比较。 'butts'是一个字符串,0是一个数字。 MySQL(或任何曾经存在的程序)无法将字符串与数字进行比较。因此,它在内部将'butts'转换为数字。如果转换为数字,则任何字符串都为0.
另请注意,您的客户端忽略了解释问题的MySQL警告:
MariaDB [test]> SHOW WARNINGS;
+---------+------+-------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'butts' |
+---------+------+-------------------------------------------+
1 row in set (0.00 sec)
我建议立即卸载任何隐藏MySQL警告的客户端......但这是个人意见:)
答案 1 :(得分:-1)
您是否肯定在查询编辑器中执行整个查询?我知道有些编辑器可以执行(突出显示)部分查询。如果您实际上只执行SELECT * FROM plugin_referral_code WHERE code
,它将返回任何具有非NULL code
值的行。
这是因为where子句需要求值为true,而WHERE code
将为任何非NULL code
值求值为true。
我能猜到这一切。如果不是这种情况,请提供更多详细信息,例如:类型列code
是什么类型,并在其前面使用DESC
执行查询以获取任何查询计划详细信息。