Seite 1 von 1

Verhalten von LIKE "%" bei Postgresql anders als bei MySQL?

Verfasst: Montag 17. Januar 2011, 21:09
von burli
Ich habe schon wieder ein seltsames Problem, das ich mir nach einer Stunde Suche immer noch nicht erklären kann.

Ich habe mir eine Suche programmiert. Die entscheidende Zeile sieht so aus (Elixir)

Code: Alles auswählen

Tag.query.filter(Tag.tname.like(tag)).all()
Also "tag" gehen verschiedene Suchbegriffe rein, die immer mit einem % anfangen und enden, zum Beispiel %dip%

Wenn ich als Datenbankserver MySQL finde dann findet er in der Datenbank den Tag "DIP". Postgresql findet ihn nicht. Gebe ich als Suchbegriff zum Beispiel %mega% an

MySQL scheint % als 0 bis beliebig viele Zeichen zu werten, Postgresql dagegen erwartet mindestens 1 Zeichen. Kann das sein? Oder ist das Einstellungssache beim Server? Jedenfalls hab ich hier bei den Servern ein unterschiedliches Verhalten

Re: Verhalten von LIKE "%" bei Postgresql anders als bei MyS

Verfasst: Montag 17. Januar 2011, 21:22
von BlackJack
@burli: Schau doch einfach in die Dokumentation(en):

http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html
http://www.postgresql.org/docs/current/ ... ching.html

Ich würde mal eher darauf tippen, dass MySQL die Gross/Kleinschreibung ignoriert und PostgreSQL nicht. Such doch mal nach '%DIP%' statt nach '%dip%'.

Re: Verhalten von LIKE "%" bei Postgresql anders als bei MyS

Verfasst: Montag 17. Januar 2011, 21:42
von burli
Hast recht. Auf das Offensichtliche komme ich mal wieder nicht :oops:

Ich lese gerade, dass es "ILIKE" gibt. Damit geht es.

Man sollte einfach mal ne Stunde den Computer ausschalten statt krampfhaft nach dem Fehler zu suche *GRML*

Danke für den Hinweis