Skip site navigation (1) Skip section navigation (2)

Re: SELECT Problem mit LIKE

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: SELECT Problem mit LIKE
Date: 2006-07-14 12:39:37
Message-ID: 20060714123937.GH21092@webserv.wug-glas.de (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
am  14.07.2006, um 14:03:16 +0200 mailte Daniel Seichter folgendes:
> Hallo,
> 
> ich habe ein kleines Problem mit einer Abfrage:
> SELECT artikel FROM artikel WHERE
>                             	  artikel LIKE 'HTS25_30';
>                             OR artikel = 'HTS25_30'
>                             OR artikel LIKE 'HTS25%30'
>                             OR artikel LIKE 'HTS25_30'
>                             ORDER BY artikel DESC LIMIT 1 ;

Warum prüfst Du so oft auf dasselbe?


> 
> Mit diesem Statement erhalte ich aber nicht immer eine Lösung, manchmal garkeine, obwohl ein Datensatz definitiv in der Tabelle artikel vorhanden ist.

Hä? Mit immer derselben Frage und denselben Daten in der DB?



> 
> Ich habe Werte wie
> RX680__3
> HTS25_30
> HTS10130
> 
> die ich durchlaufen muss. Da ich vorher nie weiss, welcher Wert das
> kommt, habe ich es eben mit dem OR zusammengestrickt, aber es scheint
> Probleme mit dem LIKE zu geben. Kann das mal jemand prüfen, wo ich
> einen Fehler gemacht habe. Komischerweise "frisst" er ein gekürztes
> Statement mit
> SELECT artikel FROM artikel WHERE
>                             artikel LIKE 'HTS25_30'
>                             ORDER BY artikel DESC LIMIT 1 ;
> 
> ebenfalls nicht, obwohl die Werte

Wie sollte die Datenbank Dein SQL 'fressen'? Bekommst Du einen Fehler,
wenn ja, welchen?


> HTS25130
> HTS25230
> HTS25330
> 
> in der Datenbank stehen!!

test=*# select * from artikel ;
 artikel
----------
 HTS25_30
 HTS_30
 HTS25130
 HTS10130
 HTS25130
 HTS25230
 HTS25330
(7 rows)

test=*# SELECT artikel FROM artikel WHERE artikel LIKE 'HTS25_30' ORDER
BY artikel DESC LIMIT 1 ;
 artikel
----------
 HTS25330
(1 row)






> 
> Danke schonmal im Voraus

Kann es sein, daß Du vielleicht lieber mit REGEX suchen willst?
Aber ich hab die Aufgabe noch nicht so ganz verstanden...

test=*# SELECT artikel FROM artikel WHERE artikel ~ '^HTS.*25';
 artikel
----------
 HTS25_30
 HTS25130
 HTS25130
 HTS25230
 HTS25330
(5 rows)




Andreas
-- 
Andreas Kretschmer    (Kontakt: siehe Header)
Heynitz:  035242/47215,      D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
 ===    Schollglas Unternehmensgruppe    === 

In response to

pgsql-de-allgemein by date

Next:From: Andreas SeltenreichDate: 2006-07-14 12:40:20
Subject: Re: SELECT Problem mit LIKE
Previous:From: Daniel SeichterDate: 2006-07-14 12:03:16
Subject: SELECT Problem mit LIKE

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group