sql >> Databáze >  >> RDS >> Mysql

Jak mohu kombinovat AND a OR v mém příkazu SQL

Obojí by bylo platné, ale protože AND má vyšší prioritu než OR , znamenaly by různé věci:

  • Váš první dotaz v závorkách by vybral smazané řádky s typy 3, 4, 5
  • Váš druhý dotaz v závorkách by kromě smazaných řádků typu 4 vybral všechny řádky s typy 3, 5; to je stejný význam jako v původním dotazu bez závorek.

Zmatku se můžete úplně vyhnout použitím operátoru IN , takto:

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

nebo chcete-li druhý význam

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


  1. Jak zkontrolovat, zda je připojení MySQL šifrováno SSL?

  2. Vyhýbání se vkládání SQL do uživatelem generovaného regulárního výrazu SQL

  3. Nejrychlejší způsob, jak zkontrolovat již existující záznam před vložením [mysql_errno()]

  4. Jak používat obrázky v Android SQLite, které jsou větší než omezení CursorWindow?