Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявката с множество оператори И изглежда игнорира един

Проблемът е с приоритета на OR /AND условия. AND има по-висок приоритет от OR , затова първо оценява всички условия, свързани с AND (tags-merch, newsID-2134 и status-1) и след това оценява маркерите-gda и tags-contests).

Опитайте се да добавите скоби:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump поддържа ли лента за напредък?

  2. MySQL 'user_id' в където клаузата е двусмислен проблем

  3. Качване на blob файлове/изображения в Mysql

  4. MySQL CAST срещу CONVERT

  5. Защитени файлове за изтегляне