sql >> Database >  >> RDS >> Mysql

Zoeken in meerdere kolommen op naam MySQL

Je kunt hier het beste een FULLTEXT-index maken die de twee velden omvat

Stap 1) Maak een stopwoordbestand met slechts drie woorden

echo "a"> /var/lib/mysql/stopwords.txt
echo "een">> /var/lib/mysql/stopwords.txt
echo "de">> /var/lib/ mysql/stopwords.txt

Stap 2) Voeg deze opties toe aan /etc/my.cnf

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

Stap 3) Maak een FULLTEXT-index op de voor- en achternaamkolommen

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

Stap 4) Implementeer de MATCH-functie in uw zoekopdracht

Zoiets als dit:

SELECTEER * VAN gebruikers WAAR (MATCH(eerste,laatste) TEGEN ('John' IN BOOLEAN-MODUS)) EN (MATCH(eerste,laatste) TEGEN ('Doe' IN BOOLEAN-MODUS));

Klik hier voor meer informatie over FULLTEXT-indexering




  1. Verwijzen naar dezelfde tabel als doel van UPDATE en gegevensbron in MySql

  2. hoe snel een grote innodb-tabel te kopiëren?

  3. Hoe unsigned int / long-types gebruiken met Entity Framework?

  4. SQL Server - Retourwaarde na INSERT