Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсене на име в няколко колони MySQL

Най-добрият залог тук е да създадете индекс с ПЪЛЕН ТЕКСТ, който обхваща двете полета

Стъпка 1) Създайте файл със стоп дума само с три думи

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

Стъпка 2) Добавете тези опции към /etc/my.cnf

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

Стъпка 3) Създайте индекс на ПЪЛЕН ТЕКСТ в колоните за име и фамилия

ALTER TABLE потребители ДОБАВЯНЕ НА ПЪЛЕН ТЕКСТ first_last_name_index (first, last);

Стъпка 4) Внедрете функцията MATCH във вашето търсене

Нещо като това:

ИЗБЕРЕТЕ * ОТ потребители КЪДЕТО (СЪВЪВСТАВЯНЕ(първо,последно) СРЕЩУ ('Джон' В БУЛЕВ РЕЖИМ)) И (СЪВЪВСТАВЯНЕ (първо,последно) СРЕЩУ ('Doe' В БУЛЕВ РЕЖИМ));

Щракнете тук, за да научите повече за FULLTEXT индексирането




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql сравнение дата и час

  2. Дата и час срещу дата и час Mysql

  3. Има ли MySQL еквивалент на TIMESTAMP на Oracle С ЧАСОВА ЗОНА?

  4. Импортирайте голям MySQL .sql файл в Windows със сила

  5. Мога ли да използвам повторно израз в MySQL заявка като променлива за друго поле?