Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Logika warunków WHERE AND/OR w MySQL wielokrotna

Musisz użyć OR zamiast AND w drugim warunku

AND ((li.MSAttributeID = 82 AND li.MSAttributeValID = 5) OR (li.MSAttributeID = 82 AND li.MSAttributeValID = 6))
OR ((li.MSAttributeID = 85 AND li.MSAttributeValID = 223) OR (li.MSAttributeID = 85 AND li.MSAttributeValID = 229) OR (li.MSAttributeID = 85 AND li.MSAttributeValID = 247))

AND sprawia, że ​​oba warunki są ważne i nie zwraca żadnych wyników

Poniżej znajduje się właściwy sposób podania warunku,

 AND ((li.MSAttributeID in (82, 85) AND li.MSAttributeValID in (5, 6, 223, 229, 247 )) OR (li.MSAttributeID = 82 AND li.MSAttributeValID = 6))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapisywanie ramki danych do tabeli MySql DB

  2. PHP:Jak wyświetlić domyślny obrazek, jeśli określony nie istnieje?

  3. Użyj SparkSession.sql() z JDBC

  4. MySQL SELECT z wielu tabel, wielu GROUP BY i group_concat?

  5. Zoptymalizuj zapytanie MySQL, aby uniknąć używania where; Korzystanie tymczasowe; Korzystanie z sortowania plików