問題は、OR
の優先度にあります / AND
条件。 AND
OR
よりも優先度が高い 、そのため、最初にAND
で接続されたすべての条件を評価します。 (tags-merch、newsID-2134、status-1)次に、tags-gdaとtags-contestsの両方を評価します。
角かっこを追加してみてください:
SELECT *
FROM `posts`
WHERE (`tags` LIKE '%gda%'
OR `tags` LIKE '%contests%'
OR `tags` LIKE '%merch%')
AND `newsID` != '2134'
AND `status` > '1'
ORDER BY `postDate` DESC
LIMIT 5