Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como consultar esta tabela MySQL da maneira mais eficiente?


Você terá que fazer uma varredura completa da tabela, então esta é provavelmente a melhor solução:
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;

Se sua lista estiver em uma tabela com um índice, você poderá usar um left join nele. No entanto, o MySQL otimiza as pesquisas para in com valores constantes (usa uma busca binária). Portanto, este é provavelmente o método mais rápido.