Mysql
 sql >> Database >  >> RDS >> Mysql

Ricerca di nomi a più colonne MySQL

La soluzione migliore qui è creare un indice FULLTEXT che comprenda i due campi

Passaggio 1) Crea un file di parole non significative con solo tre parole

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

Passaggio 2) Aggiungi queste opzioni a /etc/my.cnf

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

Passaggio 3) Crea un indice FULLTEXT nelle colonne nome e cognome

ALTER TABLE utenti ADD FULLTEXT first_last_name_index (first, last);

Passaggio 4) Implementa la funzione CONFRONTA nella tua ricerca

Qualcosa del genere:

SELEZIONA * DA utenti DOVE (MATCH(first,last) CONTRO ('John' IN MODALITÀ BOOLEANA)) E (MATCH(first,last) CONTRO ('Doe' IN MODALITÀ BOOLEANA));

Fai clic qui per saperne di più sull'indicizzazione FULLTEXT