MySQL-Volltext-Suche
Kerstin
- datenbank
Hallo,
ist es möglich bei einer MySQL-Volltext-Suche herauszubekommen, in welcher Spalte das gesuchte Wort gefunden wurde?
z.B. SELECT * FROM test WHERE MATCH (spalte1, spalte2, spalte3) AGAINST ('suchwort*' IN BOOLEAN MODE);
Das Suchwort kommt z.B. nur in spalte2 vor. Gibt es da eine Möglichkeit da ran zu kommen?
Interessant wäre auch zu erfahren, wie man mehrere Tabellen sinnvoll "verbindet" um diese ebenfalls mit MATCH ... AGAINST ... abfragen zu können. Ich habs bisher mit JOIN ... ON ... gemacht. Auch UNION funzt recht gut. Sogar auch die Kombination. Die Frage ist, ob ich damit meiner DB nicht zuviel zu mute und es vielleicht doch einfacher geht ???
Gruß,
Kerstin
echo $begrüßung;
ist es möglich bei einer MySQL-Volltext-Suche herauszubekommen, in welcher Spalte das gesuchte Wort gefunden wurde?
Wie findest du heraus, ob bei einer Bedingung WHERE a OR b a oder b zum Wahrwerden der Bedingung geführt hat? Vielleicht mit einer nachträglichen Prüfung der Einzelbedingungen?
Interessant wäre auch zu erfahren, wie man mehrere Tabellen sinnvoll "verbindet" um diese ebenfalls mit MATCH ... AGAINST ... abfragen zu können. Ich habs bisher mit JOIN ... ON ... gemacht. Auch UNION funzt recht gut. Sogar auch die Kombination. Die Frage ist, ob ich damit meiner DB nicht zuviel zu mute und es vielleicht doch einfacher geht ???
Das kann man so pauschal nicht beantworten. Jeder Befehlsteil ist mit Arbeit verbunden. Jede einzelne (auch der mit UNION verknüpften) Abfrage ist gegebenenfalls auch mit einem Overhead verbunden, der bei einer großen Tabelle wegfallen könnte. Eventuell lässt sich mehr rausholen, wenn das Datenbankschema optimiert wird, doch dazu kann man ohne Kenntnis desselben keine geeigneten Vorschläge unterbreiten.
echo "$verabschiedung $name";
Hallo,
ist es möglich bei einer MySQL-Volltext-Suche herauszubekommen, in welcher Spalte das gesuchte Wort gefunden wurde?
Wie findest du heraus, ob bei einer Bedingung WHERE a OR b a oder b zum Wahrwerden der Bedingung geführt hat? Vielleicht mit einer nachträglichen Prüfung der Einzelbedingungen?
Hm ... Wenn jetzt jedoch Spalten von A bis Z vorhanden sind, wirds mühsam all diese nochmals einzeln zu prüfen. Jedenfalls so wie ich mir das gerade vorstelle. Außerdem belastet das die DB ja dann wieder. Dann könnte man ja gleich die Einzelprüfung machen und MATCH () AGAINST () über den Haufen werfen.
Gruß,
Kerstin
hi,
Hm ... Wenn jetzt jedoch Spalten von A bis Z vorhanden sind, wirds mühsam all diese nochmals einzeln zu prüfen. Jedenfalls so wie ich mir das gerade vorstelle. Außerdem belastet das die DB ja dann wieder. Dann könnte man ja gleich die Einzelprüfung machen und MATCH () AGAINST () über den Haufen werfen.
Du könntest ja alternativ diese Prüfung, in welche[r|n] Spalte(n) der gesuchte Wert vorkam nicht der DB aufbürden, sondern ihn anschließend im verarbeitenden Script machen.
gruß,
wahsaga