Duas opções:
-
Use oLIKE
palavra-chave, juntamente com os sinais de porcentagem na string
select * from table where field like '%a%' or field like '%b%'.
(observação:se sua string de pesquisa contiver sinais de porcentagem, você precisará escapar deles)
-
Se você estiver procurando por uma combinação de strings mais complexa do que especificou em seu exemplo, você pode expressões regulares (regex):
Consulte o manual do MySQL para saber mais sobre como usá-los:http:/ /dev.mysql.com/doc/refman/5.1/en/regexp.html
Destes, usando
LIKE
é a solução mais comum -- é o SQL padrão e de uso comum. Regex é menos comumente usado, mas muito mais poderoso. Observe que, independentemente da opção escolhida, você precisa estar ciente das possíveis implicações de desempenho. Procurar por substrings como esta significará que a consulta terá que varrer toda a tabela. Se você tiver uma tabela grande, isso pode tornar a consulta muito lenta e nenhuma quantidade de indexação ajudará.
Se isso for um problema para você e você precisar pesquisar as mesmas coisas várias vezes, talvez prefira fazer algo como adicionar um campo de sinalizador à tabela que especifica que o campo de string contém o subtexto relevante. cordas. Se você mantiver esse campo de sinalizador atualizado ao inserir ou atualizar um registro, poderá simplesmente consultar o sinalizador quando desejar pesquisar. Isso pode ser indexado e tornaria sua consulta muito mais rápida. Se vale a pena o esforço para fazer isso, depende de quão ruim o desempenho está usando
LIKE
.