Das Problem liegt in der Priorität von OR
/AND
Bedingungen. AND
hat eine höhere Priorität als OR
, deshalb wertet es zuerst alle Bedingungen aus, die durch AND
verbunden sind (tags-merch, newsID-2134 und status-1) und wertet dann sowohl tags-gda als auch tags-contests aus).
Versuchen Sie, die Klammern hinzuzufügen:
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