sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo consultar esta tabla MySQL de la manera más eficaz?

Tendrá que hacer un escaneo completo de la tabla, por lo que esta es probablemente la mejor solución:

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;

Si su lista está en una tabla con un índice, entonces puede usar una left join en eso. Sin embargo, MySQL optimiza las búsquedas de in con valores constantes (utiliza una búsqueda binaria). Así que es probable que este sea el método más rápido.