SQL IN Abfrage mit mysql

Hallo,

Ich hab eine Tabelle „beschreibungen“ in der eine Spalte „beschreibung“ mit einem Datensatz „Das ist die erste Beschreibung“ ist.

Nun wollte ich den Datensatz mit dem folgenden Statement auslesen:
Select * from beschreibungen where lower(beschreibung) in (’%das%’,’%die%’)

Allerdings sagt mir mysql dann stets:
„MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).“

Kann mir bitte jemand sagen was ich an dem SQL Statement korrigieren muss?

Hallo,

versuchs mal mit folgender Formulierung:

SELECT *
FROM beschreibungen
WHERE lower(beschreibung) LIKE ‚%das%‘
OR lower(beschreibung) LIKE ‚%die%‘

Danke für kurzes Feedback.

Gruss,
SomeOne

Des hatte ich schon versucht und es funktioniert auch.
Bloß wollte ich es gern mit IN umsetzen, da es sein könnte, dass ich mit PHP mehrere Wert hätte und sie somit einfach in "IN (’%wert1%’,’%wert2%’,’%wert3%’,’%wert4%’,’%wert5%’) integrieren könnte. Bei der anderen Variante müsste ich ein längeres OR Statement zusammenbauen.

Hi,
da falle ich auch immer wieder drauf rein.
klar, dass da nix rauskommt.
Du suchst damit nicht die worte ‚das‘ und ‚die‘ in der beschreibung, sondern die Beschreibung in den einzelnen worten in der in-klausel.
Die kann man meines wissen auch so nicht umdrehen wie bei like.

Select * from beschreibungen where lower(beschreibung) in (’%das%’,’%die%’)

alternativ könntest du dich damit anfreunden:

SELECT * FROM beschreibungen where
beschreibung REGEXP ‚.*das.*|.*die.*‘ = 1

den Regesx kannst du dann beliebig mit dem OR parameter ‚|‘ erweitern.

Gruß
Proteus