sql >> Databasteknik >  >> RDS >> Mysql

Namnsökning med flera kolumner MySQL

Det bästa här är att skapa ett FULLTEXT-index som omfattar de två fälten

Steg 1) Skapa en stoppordsfil med bara tre ord

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

Steg 2) Lägg till dessa alternativ till /etc/my.cnf

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

Steg 3) Skapa FULLTEXT-index på för- och efternamnskolumnerna

ALTER TABLE-användare ADD FULLTEXT first_last_name_index (first,last);

Steg 4) Implementera MATCH-funktionen i din sökning

Något så här:

VÄLJ * FRÅN användare WHERE (MATCH(första,sista) MOT ('John' I BOOLENSK LÄGE)) OCH (MATCH(första,sista) MOT ('Doe' I BOOLENSK LÄGE));

Klicka här för att lära dig mer om FULLTEXT-indexering




  1. Kan jag återanvända ett beräknat fält i en SELECT-fråga?

  2. Hur man bestämmer fältvärdet som inte kan konverteras till (decimal, float,int) i SQL Server

  3. Ett ihållande tillfälligt bord?

  4. Hur man ansluter till Oracle med hjälp av Service Name istället för SID