sql >> Databasteknik >  >> RDS >> Mysql

ÅLDER [1, 2, 3] kontra ÅLDER MELLAN 1 OCH 3

Båda frågorna kommer att använda ett index.

Fråga A kommer att översättas till:

select * from person where age = 1 or age = 2 or age 3;

Fråga B översätts till

select * from person where age >= 1 and age <= 3;

Så fråga A kommer att göra 3 tester med ELLER.
Fråga B kommer att göra 2 tester med OCH.

Fråga B är snabbare.

I allmänhet, frågor som använder AND är snabbare än frågor som använder OR .
Också fråga B gör färre tester och eftersom den testar ett intervall kan den lättare utesluta resultat som den inte vill ha.



  1. MySQL - hur många rader kan jag infoga i en enda INSERT-sats?

  2. Få bara kolumnnamn som i array mysql

  3. Vad är skillnaden mellan RANK och DENSE_RANK i SQL?

  4. Hur kan jag välja endast den första distinkta matchningen från ett fält i MySQL?