Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyszukiwać frazy w tabeli SQL

Problem z błędami pisowni jest trudny, jeśli nie niemożliwy, do rozwiązania w czystym MySQL.

Wielokolumnowy FULLTEXT wyszukiwanie nie jest takie złe.

Twoje zapytanie będzie wyglądać mniej więcej tak ...

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

Spowoduje to wygenerowanie szeregu wyników, uporządkowanych według tego, które domysły MySQL są najbardziej prawdopodobnymi trafieniami w pierwszej kolejności. Domysły MySQL nie są świetne, ale zazwyczaj są wystarczające.

Będziesz potrzebować FULLTEXT indeks pasujący do listy kolumn w MATCH() klauzula. Tworzenie tego indeksu wygląda tak.

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

Niezależnie od komentarzy w twoim pytaniu, potrzebujesz tylko indeksu dla grupy kolumn, które będziesz przeszukiwać.

20 tys. wierszy nie będzie dużym obciążeniem dla żadnego ze starszych urządzeń serwerowych.

Błędna pisownia:możesz spróbować SOUNDEX() , ale jest to algorytm z początku XX wieku zaprojektowany przez Bell System do wyszukiwania nazwisk ludzi w amerykańskim angielskim. Został zaprojektowany, aby uzyskać wiele fałszywych trafień i jest naprawdę głupszy niż wiadro kamieni.

Jeśli naprawdę potrzebujesz korekty pisowni, być może będziesz musiał zbadać Sfinksa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest lepszy sposób przechowywania daty i czasu w MySQL?

  2. Wyświetl, ile razy lokalizacja pojawiła się w odpowiedniej tabeli po wybraniu odpowiedniej opcji z listy rozwijanej

  3. Jak przekonwertować bazę danych MySQL na XML?

  4. normalizowanie znaków akcentowanych w zapytaniach MySQL

  5. SQLSTATE[HY000] [2002] Brak takiego pliku lub katalogu