Problem dotyczy priorytetu OR
/AND
warunki. AND
ma wyższy priorytet niż OR
, dlatego najpierw ocenia wszystkie warunki połączone przez AND
(tags-merch, newsID-2134 i status-1), a następnie ocenia zarówno tagi-gda, jak i tagi-contests).
Spróbuj dodać nawiasy:
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