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

Pesquisa de nome de várias colunas MySQL


Sua melhor aposta aqui é criar um índice FULLTEXT que englobe os dois campos

Etapa 1) Crie um arquivo de palavras de parada com apenas três palavras

echo "a"> /var/lib/mysql/stopwords.txt
echo "an">> /var/lib/mysql/stopwords.txt
echo "the">> /var/lib/ mysql/stopwords.txt


Etapa 2) Adicione essas opções ao /etc/my.cnf

ft_min_word_len=2
ft_stopword_file=/var/lib/mysql/stopwords.txt


Etapa 3) Crie o índice FULLTEXT nas colunas de nome e sobrenome

Usuários ALTER TABLE ADD FULLTEXT first_last_name_index (first,last);

Etapa 4) Implemente a função MATCH em sua pesquisa

Algo assim:

SELECT * FROM users WHERE (MATCH(first, last) AGAINST ('John' NO MODO BOOLEAN)) E (MATCH(first,last) AGAINST ('Doe' IN BOOLEAN MODE));

Clique aqui para saber mais sobre a indexação FULLTEXT