Re : Ignorer la casse

From: Laurent ROCHE <laurent_roche(at)yahoo(dot)com>
To: Guillaume Lelarge <guillaume(at)lelarge(dot)info>, David Boccou <david(dot)boccou(at)gmail(dot)com>
Cc: Stéphane BUNEL <stephane(at)bpf(dot)st>, pgsql-fr-generale(at)postgresql(dot)org
Subject: Re : Ignorer la casse
Date: 2007-08-17 14:24:45
Message-ID: 255241.37677.qm@web34407.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Merci pour toutes les réponses la solution de l'index fonctionel parait la plus satisfaisante.

Dans mon cas, j'aurait préféré une solution de configuration du server (par exemple en définissant un sort order spécifique), pour pouvoir utiliser le même code SQL avec un autre moteur SGBDr (spécifiquement Derby).

ce que j'aimerai c'est pouvoir remplacer mes ordres SQL du type
SELECT *
FROM my_table
WHERE lower(tb_name) = 'polo'
par
SELECT *

FROM my_table

WHERE tb_name = 'polo'

(pour éviter le LIKE qui est encore un autre sujet de discussion : merci pour toutes les réponses cependant, qui m'ont fait apprendre de nouvelles choses)

Merci,
L(at)u
The Computing Froggy

----- Message d'origine ----
De : Guillaume Lelarge <guillaume(at)lelarge(dot)info>
À : David Boccou <david(dot)boccou(at)gmail(dot)com>
Cc : Stéphane BUNEL <stephane(at)bpf(dot)st>; Laurent ROCHE <laurent_roche(at)yahoo(dot)com>; pgsql-fr-generale(at)postgresql(dot)org
Envoyé le : Vendredi, 17 Août 2007, 13h46mn 37s
Objet : Re: [pgsql-fr-generale] Ignorer la casse

David Boccou a écrit :
> Si je ne m'abuse, de toute façon une recherche avec un critère LIKE et
> un % au début de l'expression recherchée ne peut pas se servir des
> index. (car celui ci se base sur l'ordre alphanumérique et dans ce cas
> il ne connaît pas le premier caractère à chercher)
>
> Je sais que c'est le cas sous Oracle en tout cas
>

En fait, c'est possible. L'index habituel est utilisé pour les
recherches de types 'xxx%'. Un index fonctionnel peut être utilisé dans
le cas d'une recherche inversé (donc du type '%xxx')... pour cela, voir
l'article intitulé : Utiliser un index pour les recherches sur des
motifs tels que « colonne LIKE '%chaîne' »
(http://www.postgresqlfr.org/?q=node/1329). Enfin, pour les recherches
de type '%xxx%', voire pour des recherches plus complexes, il est
possible d'utiliser TSearch2 avec (ou sans) des index GiST ou GIN.

--
Guillaume.
<!-- http://abs.traduc.org/
http://lfs.traduc.org/
http://docs.postgresqlfr.org/ -->

______________________________________________________________________________
Stockage illimité de vos mails avec Yahoo! Mail. Changez aujourd'hui de mail !

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Francis Leboutte 2007-09-03 08:36:39 Windows XPpro - Linux
Previous Message Guillaume Lelarge 2007-08-17 11:46:37 Re: Ignorer la casse