Suchfunktion mit LIKE unde mehreren Suchwörtern

christhebaer

Mitglied
Hallo!

Ich habe da mal folgende Frage:

Mittels SQL-Anweisung versuche ich den Inhalt einer Tabelle
gefiltert mit Suchwörtern auszugeben.

So sieht meine SQL-Anweisung zur Zeit aus:

SELECT * FROM Kontaktdaten WHERE (Vorname LIKE '%text1%' OR Nachname LIKE '%text1%') AND (Vorname LIKE '%text2%' OR Nachname LIKE '%text2%')

Sprich es soll folgendes passieren:
Das Suchwort "text1" soll gefunden werden, und das Suchwort "text2" soll gefunden werden, und zwar im gleichen Datensatz. Es gibt auch definitiv einen Datensatz, wo beide Wörter in
den entsprechenden Feldern vorhanden sind, und somit die Ausgabe true sein sollte - da ja beide Bedingungen erfüllt worden sind. Nur leider klappt das nicht?

Wenn ich anstatt des AND ein OR setze liefert er mir den Datensatz, aber auch alle anderen Datensaätze die mindestens eins von den Suchwörtern beinhaltet. Das möchte ich aber nicht.
Es soll so sein, dass wenn man mehr Wörter eingibt, dann soll sich das Ergebnis reduzieren.

Hat da vielleicht jemand einen Tipp? Ich wäre sehr dankbar dafür.

Gruß!
christhebaer
 
Hallo,

damit du das gewünschte Ergebnis bekommst,suchst du erstmal in einem SubSelect alle Datensätze mit dem ersten Suchwert und in diesem Ergebnis suchst du nach dem 2. Suchwert.

z.B. so:
Code:
SELECT     *
FROM         (SELECT     *
                       FROM          Kontaktdaten 
                       WHERE      (Vorname LIKE '%text1%' OR Nachname LIKE '%text1%') ) KontaktdatenSub
WHERE     (Vorname LIKE '%text2%' OR Nachname LIKE '%text2%')
 
Zurück