André Laugks: Mehrere Spalten durchsuchen

Beitrag lesen

Hallo!

wenn man hier die Spalten "zusammenklebt" und z.B. nach 'eier', oder auch 'eierkocher'
sucht ergeben sich Treffer die in dieser Form vermutlich eher unbeabsichtigt sind ;-)

Richtig! Ich habe gepennt und es nicht geschrieben. Ich nehme nicht CONCAT_WS(), sondern setze immer ein Leerzeichen zwischen den Spalten. Damals kannte ich CONCAT_WS() noch nicht.

CONCAT(spalte, ' ', spalte_1)

hast Du das mal mit einer Abfrage der Art

SELECT spalte
FROM tabelle
WHERE
(spalte_1 LIKE '%suchwert%')
OR
(spalte_2 LIKE '%suchwert%')
OR
(spalte_3 LIKE '%suchwert%')

verglichen?

Ja, es war viel viel schneller. Ich konnte es aber so nicht machen, weil ich OR, AND und NOT generiere, je nach dem wie der Suchstring ist. Deshalb fasse ich auch die Spalten zusammen. Mit dem OR pro Spalte, waren die Suchergebnisse nicht genau. Wenn es bei einer Spalte passt, gibt es ein Treffer.
Das dumme, so gibt es mehrere CONCAT() in der WHERE-Klausel :-(.

Wie gesagt, sehr sehr dreckig! ;-)

Ansonsten benutze ich diese "DRECKIGE" Abfrage auch öfter und bisher war das immer recht
schnell, es waren allerdings auch nie mehr als einige Hundert bis wenige Tausend Datensätze.

Bei mir genau so.

MfG, André Laugks

--
L-Andre @ gmx.de