Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrspaltige Namenssuche MySQL

Am besten erstellen Sie hier einen FULLTEXT-Index, der die beiden Felder umfasst

Schritt 1) ​​Erstellen Sie eine Stoppwortdatei mit nur drei Wörtern

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

Schritt 2) Fügen Sie diese Optionen zu /etc/my.cnf

hinzu

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

Schritt 3) Erstellen Sie einen FULLTEXT-Index für die Spalten Vor- und Nachname

ALTER TABLE-Benutzer ADD FULLTEXT first_last_name_index (first, last);

Schritt 4) Implementieren Sie die MATCH-Funktion in Ihrer Suche

Etwas in der Art:

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

Klicken Sie hier, um mehr über die FULLTEXT-Indizierung zu erfahren