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

Wiele kolumn w MATCH AGAINST

Kolumny nazwane wewnątrz MATCH() muszą być tymi samymi kolumnami, które zostały wcześniej zdefiniowane dla indeksu FULLTEXT. Oznacza to, że zestaw kolumn w indeksie musi być taki sam, jak w wywołaniu funkcji MATCH() .

Tak więc, aby przeszukać dwie kolumny, musisz zdefiniować indeks PEŁNOTEKSTOWY w tych samych dwóch kolumnach, w tej samej kolejności.

Poniższe jest w porządku:

ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2);

SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')

Poniższe jest błędne, ponieważ MATCH() odwołuje się do dwóch kolumn, ale indeks jest zdefiniowany tylko dla jednej kolumny.

ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1);

SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')

Poniższe jest błędne, ponieważ MATCH() odwołuje się do dwóch kolumn, ale indeks jest zdefiniowany dla trzech kolumn.

ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2, column3);

SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')

Poniższe jest błędne, ponieważ MATCH() odwołuje się do dwóch kolumn, ale każdy indeks jest zdefiniowany dla jednej kolumny.

ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1);
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column2);

SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')

Poniższe jest błędne, ponieważ MATCH() odwołuje się do dwóch kolumn, ale w złej kolejności:

ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2);

SELECT ID FROM table1 WHERE MATCH(column2, column1) AGAINST ('text')

Podsumowując, użycie MATCH() musi odwoływać się dokładnie do tych samych kolumn, w tej samej kolejności, jako jedna definicja indeksu pełnotekstowego.




  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 usuwa wiele wierszy w jednym warunku zapytania unikalnym dla każdego wiersza

  2. Rozróżnienie MySQL między e i é (e ostre) - UNIKALNY indeks

  3. Najtańszy sposób na sprawdzenie, czy połączenie MySQL jest nadal aktywne

  4. Jak zaimportować dane z pliku tekstowego do bazy mysql

  5. Jaki jest najlepszy sposób na zaimplementowanie tabeli kolejki wiadomości w mysql