Mysql
 sql >> Base de données >  >> RDS >> Mysql

La requête MySQL avec plusieurs instructions ET semble en ignorer une

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