Re: Komisches Ergebnis in WHERE .... Denkfehler ?

From: Hubertus von Fuerstenberg <hubertus(dot)fuerstenberg(at)ise(dot)fhg(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Komisches Ergebnis in WHERE .... Denkfehler ?
Date: 2010-11-22 14:40:55
Message-ID: 4CEA80F7.1090607@ise.fhg.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

On 11/22/10 3:24 PM, Martin Spott wrote:
> Tach zusammen, ich sitze moeglicherweise einem ganz dummen Denkfehler
> auf, erkenne ihn aber offenbar selbst mit Nachdenken nicht. Eigentlich
> handelt es sich um eine der einfachsten Aufgaben, die so eine Datenbank
> ueberhaupt kennt .... :-/
> Der 'Kandidat' ist eine PostgreSQL/PostGIS-Datenbank. Diese haben
> naturgemaess alle eine Tabelle "geometry_columns", in der diejenigen
> Tabellen gelistet sind, die so eingerichtet sind, dass sie Geodaten
> speichern koennen (das ist etwas vereinfacht, aber dennoch zutreffend).
>
> Ich will mir nun diejenigen Tabellen listen lassen, deren Name mit
> "clc" und anschliessend einem Unterstrich beginnt:
>
> landcover=> \d geometry_columns
> Table "public.geometry_columns"
> Column | Type | Modifiers
> -------------------+------------------------+-----------
> f_table_catalog | character varying(256) | not null
> f_table_schema | character varying(256) | not null
> f_table_name | character varying(256) | not null
> f_geometry_column | character varying(256) | not null
> coord_dimension | integer | not null
> srid | integer | not null
> type | character varying(30) | not null
> Indexes:
> "geometry_columns_pk" PRIMARY KEY, btree (f_table_catalog, f_table_schema, f_table_name, f_geometry_column)
>
> landcover=> SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE 'clc_%';
> f_table_name
> --------------------------
> clc06_fr_urban
> [...]
>

Moin,
ich hab es selbst nicht ausprobiert, aber das Manual von 9.0 sagt, dass
ein '_' in der LIKE Anweisung auf ein beliebiges Zeichen matcht:

An underscore (_) in pattern stands for (matches) any single character;
a percent sign (%) matches any sequence of zero or more characters. (aus
http://www.postgresql.org/docs/9.0/interactive/functions-matching.html).

d.h. clc0 matcht auf clc_ aus dem LIKE und der Rest kommt vom '%'

HTH,
Hubertus

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Nicolas Barbier 2010-11-22 14:41:17 Re: Komisches Ergebnis in WHERE .... Denkfehler ?
Previous Message König 2010-11-22 14:35:20