IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

requ�te sans prendre en compte la casse


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    12
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 12
    Par d�faut requ�te sans prendre en compte la casse
    Voila j'ai une fonction qui prend un argument en param�tre et que j'utilise dans une requ�te du style :

    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
    select * from book where titre like $1||'%';

    Mais quand je lance une recherche avec une majuscule dans le param�tre la requ�te ne trouve pas les titres qui commence par une minuscule...

    Voila mon souci j'aimerai que la requ�te ne prenne pas en compte la casse du param�tre.

    Merci.

  2. #2
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par d�faut
    tu peux utiliser ILIKE :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    select * from book where titre ilike $1||'%';
    ca ignore la casse

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour,

    Je ressors un vieux topic avec une nouvelle question (le sujet du topic correspondant parfaitement � ma question).

    Voil� j'ai cette requ�te:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Select r.id_real_estate, a.country from real_estates r JOIN addresses a ON r.id_real_estate=a.id_real_estate WHERE a.country='Finland';
    Ce que je souhaiterais c'est que lorsque je fais cette m�me requ�te mais avec 'finland' � la place de 'Finland', j'obtienne le m�me r�sultat, bref que ma requ�te ne fasse pas attention � la casse.

    Merci pour votre aide et bonne soir�e.

  4. #4
    jnore
    Invit�(e)
    Par d�faut
    ce que hpalpha t'a dit fonctionne tr�s bien!

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Tu veux dire en faisant comme �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    WHERE a.country like '%inland'

  6. #6
    jnore
    Invit�(e)
    Par d�faut
    Que tu tapes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    WHERE a.country ILIKE 'Finland'
    ou

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    WHERE a.country ILIKE 'finland'
    Ca fonctionnera.

    Attention:Bien mettre le 'I' devant le Like.

  7. #7
    Invit�
    Invit�(e)
    Par d�faut
    Apparement le "ilike" ne marche pas. Je suis sous Oracle Express Edition.

  8. #8
    jnore
    Invit�(e)
    Par d�faut
    le probleme c'est qu'ici t'es sous le forum Postgresql.

    Je ne pourrai malheureusement pas t'aider sous oracle

  9. #9
    jnore
    Invit�(e)
    Par d�faut
    Une astuce quand m�me qui vaut ce qu'elle vaut:

    Dans ton select tu traduis ton champ en majuscule et tu filtre dans ta clause Where sur des caract�res en Masjuscule aussi, du genre:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     
    Select UPPER(champ)
    FROM table
    WHERE champ LIKE UPPER('Finland')

  10. #10
    Invit�
    Invit�(e)
    Par d�faut
    Moi �a me va

    Merci � toi

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Par d�faut
    Bonjour,

    J'ai voulu utiliser ILIKE pour faire une recherche sans la casse

    Ma requ�te initiale �tait :
    SELECT u FROM Users u WHERE u.nom_users LIKE '%Test%'

    Lorsque je fais :
    SELECT u FROM Users u WHERE u.nom_users ILIKE '%Test%'

    Ca marche seulement j'utilise cette requette en JPA et l'application totale est d�ploy� dans glassfish et avec LIKE �a marchait tr�s bien, seulement avec ILIKE j'ai une erreur au d�ploiement.

    Deploying application in domain failed; Exception Description: Syntax error parsing the query [listuserByNom: SELECT u FROM Users u WHERE u.nom_users ILIKE :nom], line 1, column 41: unexpected token [ILIKE]. Internal Exception: line 1:41: unexpected token: ILIKE Exception Description: Syntax error parsing the query [listuserByNom: SELECT u FROM Users u WHERE u.nom_users ILIKE :nom], line 1, column 41: unexpected token [ILIKE]. Internal Exception: line 1:41: unexpected token: ILIKE

    Si vous pouvez m'aider ... le but est de faire une recherche sans respecter la casse ...
    Mer�i encore

  12. #12
    say
    say est d�connect�
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 176
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 176
    Par d�faut
    ILIKE est propre � PGSQL...et pas tr�s optimis� � priori

    comme propos� plus haut (enfin presque) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    SELECT champ
    FROM TABLE
    WHERE  UPPER(champ) LIKE UPPER('Finland')

  13. #13
    R�dacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de donn�es / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Expert bases de donn�es / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par d�faut
    LIKE [...] ca ignore la casse
    D'ou tenez vous cette id�e farfelue ???
    C'est navrant pour un responsable PostGreSQL de r�pandre des horreurs pareilles !

    Notons qu'il est bien dommage que PostGreSQL ne supporte pas l'op�rateur de collation COLLATE (norme SQL) qui permet de rendre sensible ou insensible � la casse ou aux accents les op�rations de comparaisons de chaines de caract�res, car dans ce cas la requ�te serait par exemple la suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    SELECT colonne
    FROM TABLE
    WHERE  colonne = 'Finland' COLLATE French_CI_AI
    A +
    Fr�d�ric Brouard - SQLpro - ARCHITECTE DE DONN�ES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : mod�lisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  14. #14
    say
    say est d�connect�
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    1 176
    D�tails du profil
    Informations personnelles :
    �ge : 47
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 176
    Par d�faut
    sauf qu'il parle de ILIKE... qui n'est pas sensible � la casse...pas dans la norme SQL? mais comme on est dans le forum postgresql, on est en droit de se dire qu'on se fera pas allum�...

Discussions similaires

  1. R�ponses: 1
    Dernier message: 07/02/2009, 14h27
  2. ne pas prendre en compte la casse ni les accents
    Par pigpen dans le forum JDBC
    R�ponses: 14
    Dernier message: 10/05/2007, 14h40
  3. R�ponses: 4
    Dernier message: 13/04/2007, 17h32
  4. R�ponses: 1
    Dernier message: 01/06/2006, 17h18
  5. R�ponses: 2
    Dernier message: 07/07/2004, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo