Re: Recherche dans les tableaux

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Samuel ROZE <samuel(dot)roze(at)aliceadsl(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Recherche dans les tableaux
Date: 2008-10-22 13:35:39
Message-ID: 48FF2C2B.7000802@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Samuel ROZE a écrit :
> [...]
> J'ai appris il y a quelques jours la possibilité de faire des tableaux
> directement dans les tables. Je trouve ce principe très intéressant,
> surtout dans le cas de mon utilisation.
>
> Seulement, pour réellement justifier l'utilisation de cette "nouvelle"
> technique de rangement dans la base de données, je voudrais savoir si je
> peux faire une recherche dans une table en fonction d'une valeur d'un
> tableau. Par exemple, j'ai admettons un champ "champs" (integer[]) dans
> ma table "fermiers". Je veux savoir à qui est le champ n°12... Puis-je
> faire une recherche du type:
> SELECT nom FROM public.fermiers WHERE champs[*] = 12;
> (cette requête ne marche pas :( )

SELECT nom FROM public.fermiers WHERE 12 = ANY (champs);

Voir http://docs.postgresql.fr/8.3/arrays.html pour plus de détails.

> Si ce n'est pas possible, je sais bien que je peux faire une table table
> qui contiendras la "relation" entre la table "champs" et la table
> "fermiers" par exemple.
>

C'est souvent plus intéressant car indexable. Il y a bien le module
contrib intarray (http://docs.postgresql.fr/8.3/intarray.html) mais bon...

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Samuel ROZE 2008-10-22 13:36:28 Re: Recherche dans les tableaux
Previous Message Ludovic Levesque 2008-10-22 13:34:54 Re: Recherche dans les tableaux