Como contar número de ocorrências de string num campo do MySQL

Recentemente, meu chefe perguntou se era possível encontrar uma quantidade de strings dentro de uma campo através de uma consulta SQL. Desafio lançado, eis a solução:

#Neste exemplo field2 possui o valor Gilberto Albino
SELECT 
    id,
    field1,    
    ROUND ((LENGTH(field2) - LENGTH( REPLACE ( field2, "i", "") ) ) / LENGTH("i")) AS matches    
FROM table;

O resultado deverá ser 2 para este caso.

O que acontece ai é o seguinte:

Na consulta LENTGH(field2) deve retornar o tamanho do string encontrado como está no banco de dados.
Após substituirmos “i” por “” estamos removendo os caracteres.
Matematicamente, seria: Arredonde o resultado de tamanho(Gilberto Albino = 15 ) – tamanho(Glberto Albno = 13) / tamanho( i = 1).

Esta matemática é necessária, pois você poderá passar um string diferente como por exemplo: “il”, ou “lb”.

É isso aí! Um abraço do Giba!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *