Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment interroger cette table MySQL de la manière la plus performante ?

Vous devrez effectuer une analyse complète de la table, c'est donc probablement la meilleure solution :

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 votre liste est dans une table avec un index, vous pouvez utiliser une left join dessus. Cependant, MySQL optimise les recherches de in avec des valeurs constantes (il utilise une recherche binaire). Il s'agit donc probablement de la méthode la plus rapide.