出于某种原因,带有AND子句的SELECT查询表现出一些奇怪的行为。当我知道存在匹配的事实时,它返回零行。如果我删除其中任何一个条款,它就可以了。或者,最奇怪的部分,如果我在字符串的末尾添加一个通配符以匹配,它将返回预期的结果。即使列数据的末尾似乎没有任何额外的字节。
示范:
SELECT HEX(type),
type,
category
FROM cats
WHERE `category` = 10 AND
`type` LIKE "Furry";
Empty set (0.07 sec)
但
SELECT HEX(type),type,category FROM cats WHERE `type` LIKE "Furry";
+----------------------------------+------------------------+----------+
| HEX(type) | type | category |
+----------------------------------+------------------------+----------+
| 4675727279 | Furry | 10 |
...
和
SELECT HEX(type),type,category FROM cats WHERE `category`=10 AND `type` LIKE "Furry%";
+----------------------------------+------------------------+----------+
| HEX(type) | type | category |
+----------------------------------+------------------------+----------+
| 4675727279 | Furry | 10 |
...
我在这里缺少什么?