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

Como pesquisar dentro de uma tabela SQL por uma frase


O problema de erros ortográficos é difícil, se não impossível, de resolver bem no MySQL puro.

O FULLTEXT de várias colunas pesquisa não é tão ruim.

Sua consulta ficará mais ou menos assim...
 SELECT column, column
   FROM table
  WHERE MATCH(Company, FirstName, LastName, whatever, whatever) 
      AGAINST('search terms' IN NATURAL LANGUAGE MODE)

Ele produzirá um monte de resultados, ordenados pelo que o MySQL supõe ser o primeiro acerto mais provável. As suposições do MySQL não são ótimas, mas geralmente são adequadas.

Você precisará de um FULLTEXT índice correspondente à lista de colunas em seu MATCH() cláusula. A criação desse índice se parece com isso.
ALTER TABLE book 
ADD FULLTEXT INDEX Fulltext_search_index_1 
    (Company, FirstName, LastName, whatever, whatever);

Não obstante os comentários em sua pergunta, você só precisa de um índice para o grupo de colunas que você pesquisará.

20 mil linhas não serão um grande fardo para qualquer hardware de servidor vintage recente.

Erro de ortografia:você pode tentar SOUNDEX() , mas é um algoritmo do início do século 20 projetado pelo Bell System para procurar nomes de pessoas em inglês americano. Ele foi projetado para obter muitos resultados falsos positivos e realmente é mais burro do que um balde de pedras.

Se você realmente precisa de correção ortográfica, pode ser necessário investigar o Sphinx.