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

Как да търсите в SQL таблица за фраза

Проблемът с правописната грешка е труден, ако не и невъзможен, за разрешаване добре в чист MySQL.

FULLTEXT с няколко колони търсенето не е толкова лошо.

Вашата заявка ще изглежда така...

 SELECT column, column
   FROM table
  WHERE MATCH(Company, FirstName, LastName, whatever, whatever) 
      AGAINST('search terms' IN NATURAL LANGUAGE MODE)

Той ще произведе куп резултати, подредени според това, което MySQL предполага, че е най-вероятният удар на първо място. Предположенията на MySQL не са големи, но обикновено са адекватни.

Ще ви трябва FULLTEXT индекс, съответстващ на списъка с колони във вашия MATCH() клауза. Създаването на този индекс изглежда така.

ALTER TABLE book 
ADD FULLTEXT INDEX Fulltext_search_index_1 
    (Company, FirstName, LastName, whatever, whatever);

Независимо от коментарите във вашия въпрос, вие просто се нуждаете от индекс за групата от колони, които ще търсите.

20 000 реда няма да бъдат голямо бреме за който и да е нов сървърен хардуер.

Правописна грешка:можете да опитате SOUNDEX() , но това е алгоритъм от началото на 20-ти век, създаден от Bell System, за да търси имена на хора на американски английски. Той е проектиран да получава много фалшиви положителни резултати и наистина е по-глупав от кофа с камъни.

Ако наистина имате нужда от корекция на правописа, може да се наложи да проучите Sphinx.




  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 db

  3. Безопасност на нишките на MySQL Select Last_Insert_ID

  4. Дължина на индекса на MySQL varchar

  5. MySQL - INSERT INTO от временна таблица