PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : hilfe bei sql abfrage



draganda
13.07.2003, 12:12
hi.

wollte mal fragen, wie der Befehl heißt, um zb nach einen wort im Pagetext der Tabelle Post zu suchen.

Ich kenne es nur so:

SELECT * FROM `post` WHERE pagetext='wort';

aber so kann er nix anzeigen, weil er ja dann nur nach allen einträgen sucht, der nur (in diesem beispiel) "wort" ist. Sobald nur noch ein Zeichen mehr dabei ist, kann er es ja nicht mehr listen.

Also bitte Hilfe

pogo
13.07.2003, 13:04
SELECT * FROM post WHERE pagetext LIKE "%wort%";

Odysseus
13.07.2003, 13:08
*schauder*

Glaub mir, du WILLST die Tabelle "post" NICHT mit einem LIKE-Operator durchsuchen!! Das würde bedeuten, dass MySQL jedes einzelne vorhandene Post nach dem Stichwort Wort für Wort durchsucht. Da geht der Server extrem schnell in die Knie!
Hängt natürlich von der Größe des Forums ab, aber stell dir mal vor, so müsste ein 10.000-Posts-Forum durchsucht werden ...


Um solche Suchen zu ermögluchen, gibt es doch den searchindex.

Mystics
13.07.2003, 13:15
@Odysseus

Bei einem Forum mit über 700.000 Beiträgen dauert so eine Suche 10 Sekunden :) (Dual PIII 1.1GHz)

Odysseus
14.07.2003, 01:03
Ist gut möglich. Trotzdem ist es die schlechteste Methode, so eine Abfrage zu starten.
Stell dir mal vor, das wird 5 Mal pro Minute ausgeführt ...

Ne, ne. Für sowas hat der Liebe Gott uns die Volltextsuche geschenkt. :D

draganda
14.07.2003, 17:30
Das klappt super! Danke!
Und selbst wenn es viel Leistung brauchen sollte. Ist doch egal, ist ja nur einmalig! ;)