問題は、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