sql >> Database >  >> RDS >> Mysql

Hoe kan ik AND's en OR's combineren in mijn SQL-statement?

Beide zouden geldig zijn, maar sinds AND heeft een hogere prioriteit dan OR , zouden ze verschillende dingen betekenen:

  • Uw eerste zoekopdracht tussen haakjes zou verwijderde rijen kiezen met de typen 3, 4, 5
  • Uw tweede zoekopdracht tussen haakjes zou alle rijen met type 3, 5 selecteren, naast verwijderde rijen van type 4; dit is dezelfde betekenis als in de oorspronkelijke zoekopdracht zonder haakjes.

U kunt de verwarring helemaal voorkomen door de operator IN . te gebruiken , zoals dit:

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

of als je de tweede betekenis wilde

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


  1. Panda's to_sql mislukt op dubbele primaire sleutel

  2. Een Oracle SQL-scriptspoolbestand maken

  3. Mysql variabele prestaties verhogen

  4. Afbeeldingen opslaan in database mysql