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

Jak mogę połączyć AND i OR w moim zapytaniu SQL?

Obie te opcje byłyby prawidłowe, ale ponieważ AND ma wyższy priorytet niż OR , oznaczałyby różne rzeczy:

  • Twoje pierwsze zapytanie w nawiasach wskazałoby usunięte wiersze z typami 3, 4, 5
  • Twoje drugie zapytanie w nawiasach spowoduje wybranie wszystkich wierszy typu 3, 5, oprócz usuniętych wierszy typu 4; to to samo, co w oryginalnym zapytaniu bez nawiasów.

Możesz całkowicie uniknąć zamieszania, używając operatora IN , tak:

SELECT * FROM `table` WHERE type IN (3, 4, 5) AND table.deleted = 1;

lub jeśli chciałeś drugie znaczenie

SELECT * FROM `table` WHERE type IN (3, 5) OR (type = 4 AND table.deleted = 1)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać ON DUPLICATE KEY UPDATE w moim modelu CodeIgniter?

  2. Grupuj według roku w polu daty w MySQL

  3. Jak zatrzymać MySQL w instalacji Mac OS?

  4. Dlaczego to zapytanie sql nie zwraca żadnych wyników porównujących liczby zmiennoprzecinkowe?

  5. Kiedy połączenia są zwracane do puli połączeń za pomocą Spring JPA (Hibernate) Entity Manager?