Le problème est avec la priorité de OR
/AND
conditions. AND
a une priorité plus élevée que OR
, c'est pourquoi il évalue d'abord toutes les conditions reliées par AND
(tags-merch, newsID-2134 et status-1) puis évalue les tags-gda et tags-contests).
Essayez d'ajouter les crochets :
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