Kolonnerne navngivet inde i MATCH()
skal være de samme kolonner som tidligere defineret for et FULLTEXT-indeks. Det vil sige, at kolonnesættet skal være det samme i dit indeks som i dit kald til MATCH()
.
Så for at søge i to kolonner, skal du definere et FULLTEXT-indeks på de samme to kolonner i samme rækkefølge.
Følgende er okay:
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2);
SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')
Følgende er forkert, fordi MATCH() refererer til to kolonner, men indekset er kun defineret for én kolonne.
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1);
SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')
Følgende er forkert, fordi MATCH() refererer til to kolonner, men indekset er defineret for tre kolonner.
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2, column3);
SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')
Følgende er forkert, fordi MATCH() refererer til to kolonner, men hvert indeks er defineret for én kolonne.
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1);
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column2);
SELECT ID FROM table1 WHERE MATCH(column1, column2) AGAINST ('text')
Følgende er forkert, fordi MATCH() refererer til to kolonner, men i den forkerte rækkefølge:
ALTER TABLE tabl1 ADD FULLTEXT INDEX (column1, column2);
SELECT ID FROM table1 WHERE MATCH(column2, column1) AGAINST ('text')
Sammenfattende skal brugen af MATCH() referere til nøjagtig de samme kolonner, i samme rækkefølge, som én fuldtekstindeksdefinition.