Mailinglisten-Archive |
Norbert Pfeiffer wrote:
> Hi Daniel,
>
>> Hat jemand eine Lösung dafür?
> ja,
> z.B. ein einfaches MySQL-Select-Query
>
> SELECT ArtikelID, Bezeichnung, Beschreibung, Preis
> FROM meineArtikel
> WHERE '%Beschreibung%' IN ('einfach','klein','test');
Wenn das funktioniert wunder ich mich aber...
Ich schätze mal, du meintest eher:
SELECT ArtikelID, Bezeichnung, Beschreibung, Preis FROM meineArtikel
WHERE beschreibung LIKE 'einfach'
OR beschreibung LIKE 'klein'
OR beschreibung LIKE 'test'
Aber das ist so ziemlich DIE langsamste Abfrage, die du MySQL überhaupt
erbringen lassen kannst. Deutlich schneller wäre:
SELECT MATCH(spalte) AGAINST (text) AS relevanz FROM ...
Also auf dein Beispiel:
SELECT ArtikelID, Bezeichnung, Beschreibung, Preis,MATCH(Beschreibung)
AGAINST ('einfach klein test') AS relevanz FROM meineArtikel WHERE
relevanz > 0.01 ORDER BY relevanz DESC
Das setzt natürlich vorraus, dass du einen Fulltext-Index auf die Spalte
gesetzt hast.
Der Thread "Doppelte ähnliche Texte abfangen?" in der Mailingliste
könnte dich interessieren...
Yannik
> m. b. G. Norbert
php::bar PHP Wiki - Listenarchive