Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage mit mehreren UND-Anweisungen scheint eine zu ignorieren

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