sql >> Database teknologi >  >> RDS >> Mysql

Hvordan forespørger man denne MySQL-tabel på den mest effektive måde?

Du bliver nødt til at lave en fuld tabelscanning, så dette er sandsynligvis den bedste løsning:

select (case when id in (< your list >) then 'in' else 'out' end) as inlist,
       my_boolean_field, count(*)
from mytable t
group by (case when id in (< your list >) then 'in' else out' end),
         my_boolean_field;

Hvis din liste er i en tabel med et indeks, så kan du bruge en left join på det. MySQL optimerer dog søgninger efter in med konstante værdier (det bruger en binær søgning). Så dette er sandsynligvis den hurtigste metode.




  1. Python-modulet cx_Oracle-modulet kunne ikke findes

  2. Hvordan kan jeg søge i alle kolonner i en tabel?

  3. Begræns en sammenkædet server til et enkelt lokalt login (T-SQL-eksempel)

  4. Fremmednøgle til flere borde