Hallo,
ich habe in einer DB Spalte z.B. folgendes:
+--------+
|foo +
+--------+
|foobar +
+--------+
|bar +
+--------+Mit
SELECT spalte FROM tabelle WHERE spalte LIKE '%foo%'
kommt
- foo
- foobar
Ich weiß nicht genau, was Du mit "Gegenteil" meinst. Deshalb zwei Teile:
(Part 1: Like)
Mit SELECT spalte FROM tabelle WHERE spalte LIKE '%bar'
kommt
- foobar
- bar
Mit SELECT spalte FROM tabelle WHERE spalte LIKE 'bar%'
kommt
- bar
Mit SELECT spalte FROM tabelle WHERE spalte LIKE 'bar%'
kommt
- bar
Mit SELECT spalte FROM tabelle WHERE spalte LIKE 'f%bar%'
kommt
- foobar
(Part 2: REGEX:)
Das "Feinverhalten" lässt sich mit einem REGEX bestimmen:
Mit SELECT spalte FROM tabelle WHERE spalte = REGEX('^[Bb]ar.*$')
kommt
- kommt alles, was mit Bar oder bar beginnt.
Mit SELECT spalte FROM tabelle WHERE spalte = REGEX('^.*[Bb]ar$')
kommt
- kommt alles, was mit Bar oder bar endet.
Reguläre Ausdrücke sind "teuer" (brauchen "lange" fürs Abarbeiten) und verursachen einen Lernaufwand - der sich allerdings lohnt.
Jörg Reinholz