SELECT Where IN mit Wildcard

aherzog

Erfahrenes Mitglied
Hallo miteinander.

Ich habe eine Tabelle in der ich Adressen schreibe. Jedes Mitglied ist dazu in max. 4 Gruppen eingeteilt.

Nun habe ich eine Suche programmiert die mir alle Mitglieder anzeigt die den Suchbegriff in einer der 4 Gruppen enthält.
Das funktioniert auch wunderbar.
Weiter habe ich die Suche erweitert damit mit mehreren Suchbegriffen die Mitglieder gefunden werden können.
klappt auch :)

Code:
SELECT * FROM `adrese` WHERE gruppe1 in ('Festnetz','Mobile') or gruppe2 in ('Festnetz','Mobile')

nun möchte ich eine Abfrage erstellen die Wildcards unterstützt.
also das ich nach Festnetz und %obi% gleichzeitig suchen kann und festnetz und mobile gefunden wird.
Wie kann ich das realisieren mit mehreren Suchbegriffen?

Probiert habe ich:
Code:
SELECT * FROM `adrese` WHERE gruppe1 in ('Festnetz','%obi%') or gruppe2 in ('Festnetz','%obi%')
und das funktioniert irgendwie gar nicht.

Was mache ich falsch?

Gruss Andy
 
Zuletzt bearbeitet:
Das funktioniert. Das ist nur vielleicht nicht das, was du willst. Das prüft eben auf den – exakten – String "%obi%".

Probier es mal mit
Code:
WHERE (gruppe1 LIKE 'Festnetz' OR gruppe1 LIKE '%obi%') OR (gruppe2 LIKE 'Festnetz' OR gruppe2 LIKE '%obi%')
usw.

Das kannst du dir ja automatisch generieren.

Btw: Adresse mit Doppel-s, funktioniert ohne z, Hallo ohne k, Tabelle mit e am Ende, mehreren mit mehr r's und e's und das hier "," ist ein Komma und hat eine recht wichtige grammatikalische Bedeutung.
 
Hmm, die Problematik ist die das ich es gerne ermöglichen will, das der User in das Suchfeld, mehrere Suchtexte eingeben kann, und wenn möglich auch mit %als Wildcard arbeiten kann.

Bis jetzt bin ich ja soweit, das die Suche mit

Mobile, Festnetz wunderbar funktioniert.
Aber wenn ich eben das % benutze geht's nicht.

Es werden 4 Felder mit den Suchtexten durchsucht, das wird mit dem Like-Befehl ein ziemlich langer Select-Eintrag.
Kann man das nicht eleganter lösen?
 
Zurück