Axel Richter: SUCHWORT_anderesWort mit match() im mySQL suchen

Beitrag lesen

Hallo,

SELECT suchspalte FROM tabelle
WHERE MATCH(suchspalte) AGAINST ('SUCHWORT*' IN BOOLEAN MODE);

wenn ich das richtig verstehe und meine Tests richtig sind, kann ich damit nur SUCHWORT_... suchen, aber nicht ..._SUCHWORT gell?

Ja. Fulltext-Suche basiert auf einem Fulltext-Index. Bei Dir müsste das in der Tabelle "tabelle" der Index FULLTEXT(suchspalte) sein.

Wie ein Index funktioniert weißt Du?

Dann ist Dir auch klar, dass _kein_ Index soetwas wie: *SUCHWORT oder *SUCHWORT* abdecken kann. Ein Index kann _nur_ SUCHWORT* abdecken.

Weißt Du dafür auch noch einen Rat?

Ja.

SELECT suchspalte FROM tabelle WHERE suchspalte LIKE '%SUCHWORT%';

Performanter geht _das_, meiner Meinung nach, nicht.

viele Grüße

Axel