Jörg Reinholz: "Gegenstück" zu LIKE

Beitrag lesen

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