Olá, pessoal!
Hoje quero falar um pouco a respeito de como executar o comando LIKE IN no MySQL.
A primeira coisa a se saber é que não existe o comando LIKE IN, mas sim o REGEXP que faz não só exatamente a mesma coisa, mas muito mais que isso.
O comando REGEXP do MySQL tem por objetivo basicamente fazer buscas através de uma expressão regular. Futuramente farei um post abordando o assunto.
Então porque LIKE IN? Vamos recordar o funcionamento dos dois comandos:
LIKE
select * from tb_usuarios where nome like '%Silva%'
O comando acima trará todos os usuários que tem em seu nome a string Silva.
IN
select * from tb_usuarios where profissao in ('Médico', 'Engenheiro', 'Analista de Sistemas')
O comando acima trará todos os usuários que tem suas profissões dentre as que estão separadas por vírgula.
Sendo assim, LIKE IN seria a junção dos dois:
select * from tb_usuarios where nome like in ('%Silva%', '%Prado%', '%Junior%')
Dessa forma a ideia seria que o comando acima troucesse todos os usuários que tem em seu nome os sobrenomes dentre os que estão separadas por vírgula.
Seria lindo se funcionasse, mas NÃO funciona.
É neste momento que o REGEXP entra em cena. vejamos um exemplo de simulação do LIKE IN acima:
select * from tb_usuarios where nome REGEXP('Silva'|'Prado'|'Junior')
Dessa forma a query retornará resultados exatamente da forma que se esperava com o LIKE IN.
Futuramente falarei também sobre Expressões Regulares, assunto que ainda traz bastante polêmica e tabus, mas excencial para se trabalhar com o REGEXP.