Eu conto registros com consultas como
SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%something%'
SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%another%'
SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%word%'
Para cada contagem, o mysql precisa percorrer a tabela, e isso é um grande problema se tiver uma tabela longa e várias consultas.
Gostaria de saber se existe uma maneira de fazer todas as contagens em uma consulta. Nesse caso, quando o mysql percorre cada linha, ele processará todas as contagens e não será necessário varrer a tabela inteira repetidamente.
Para obter uma contagem para cada um deles, você pode tentar
Semelhante à solução de Aaron, sintaxe mais curta:
A expressão LIKE gera um resultado booleano.
TRUE
é 1 ,FALSE
é 0 , então oCASE
é redundante aqui.Se eu acertar sua necessidade, talvez isso faça o truque: