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

Как да използвате едно или повече ИЛИ и И в mysql заявка

Има предимство с логически оператори. Когато се съмнявате, използвайте скоби.

Във вашия случай:

SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200

Първоначалната ви заявка беше интерпретирана по следния начин, защото AND има по-висок приоритет.

SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)

Актуализация

Както е коментирано отРакета , можете да съкратите вашето OR изявления към IN тъй като работят на едно и също поле. Това ще премахне необходимостта от скоби.

SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200

Независимо от това, разбирането на разликата между двете оригинални заявки е важно, тъй като неизбежно ще пишете заявки с множество условия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверка на NULL спрямо запис в базата данни -> isset срещу is_null

  2. Брой до число x - sql

  3. Как да промените събитие в mysql, което вече е създадено

  4. Как да вмъкнете данните от редовете на динамичната таблица в базата данни наведнъж

  5. mysql tinyint(1) срещу tinyint(2) срещу tinyint(3) срещу tinyint(4)