Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie frage ich diese MySQL-Tabelle am leistungsfähigsten ab?

Sie müssen einen vollständigen Tabellenscan durchführen, daher ist dies wahrscheinlich die beste Lösung:

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;

Wenn sich Ihre Liste in einer Tabelle mit einem Index befindet, können Sie einen left join verwenden darauf. MySQL optimiert jedoch die Suche nach in mit konstanten Werten (es verwendet eine binäre Suche). Dies ist also wahrscheinlich die schnellste Methode.