Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL retorna a correspondência exata de palavras do conteúdo de texto


A resposta certa é provavelmente a pesquisa de texto completo.

No entanto, há duas ressalvas. Se você tiver strings curtas, como descrições de produtos ou comentários de usuários, e quiser usar like , você pode fazer algo assim:
where concat(' ', txt, ' ') like concat('% ', $word, ' %')

No entanto, isso pressupõe que os delimitadores sejam espaços. Portanto, não encontraria "Olá". Você pode corrigir isso fazendo:
where concat(' ', replace(txt, ',' ' '), ' ') like concat('% ', $word, ' %')

Mas você vai descobrir rapidamente que isso é uma dor. Portanto:pesquisa de texto completo.

Segundo, se você estiver realmente armazenando palavras-chave na coluna, então a solução é mais simples. Não faça isso. Crie uma tabela de junção que tenha uma linha por linha da tabela original e uma por palavra-chave. Armazenar listas em strings é uma má ideia em SQL.