我有一个不起作用的查询。我已经通过使用单个 IN 语句解决了这个问题(我用来构建查询的库导致了这种情况的发生),但我仍然很好奇为什么会发生这种情况。
查询如下:
SELECT * FROM (`table`)
WHERE `field` = 'false'
AND `something` LIKE '%string%'
AND `status_id` IN ('1')
OR `status_id` IN ('2')
OR `status_id` IN ('3')
对我的查询是有道理的:从表中选择字段 = false 并且类似于字符串且状态 ID 为 1 或状态 ID 为 2 或状态 ID 为 3 的所有内容
当有多个 IN 语句时,查询的 LIKE 部分将被完全忽略。
任何想法为什么多个 IN 语句会导致 LIKE 被忽略?我不知道为什么:重新安排查询没有影响(将 LIKE 移到末尾而不是开头)