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

Langage SQL Discussion :

Select et casse


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut Select et casse
    Bonjour,

    J' ai actuellement une requete qui fonctionne de type SELECT * FROM toto t WHERE t.name='titi';

    Mon problème est que la casse est respectée

    Je voudrais que ma requête me remonte titi, Titi et TiTi ...

    Je ne sais pas trop si il existe un paramètre pour régler ça, pas trouvé en tout cas

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = 'titi';

  3. #3
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Est-ce qu'il ne faudrait pas modifier la collation de la colonne "name" ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Par exemple :
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = 'titi';

    est ce que ça va marcher si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = 'Titi';
    ?? j'ai des doutes
    je vais tester

    Est-ce qu'il ne faudrait pas modifier la collation de la colonne "name" ?
    C'est quoi la collation? Définition de la colonne ?

    Merci

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    sinon tu peux toujours faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = lower('Titi');

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    salut,

    sinon tu peux toujours faire ceci :
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = lower('Titi');
    Effectivement il y a cette solution :p
    Mais je risque d'avoir des requêtes avec plusieurs paramètres ... y a pas moyen de juste spécifier un mot clef ?

    En tout cas merci pour ces réponse

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Commençons par le début, quel est votre SGBD ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    effectivement j'aurais pu le préciser désolé

    Je suis sous postgreSQL 8.3.6 mais j'aurais préféré une solution qui ne soit pas dépendante d'une sgbd particulière

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Bon je me suis plongé un peu plus profond dans ce problème,

    alors pour une base postgres il suffit d'utiliser ILIKE ...
    malheureusement ma requête est en fait construite en HQL puis passée à hibernate pour qu'il l'interprète ... HQL n'a pas de mot clef ILIKE


    Il semble possible de faire sauter la casse en utilisant les criterias d'hibernate, mais moi j'ai une requête en HQL et je voudrais pas avoir à tout transformer en criteria ....

    je continue à chercher ...

  10. #10
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Et vous ne pouvez pas écrire votre requête vous même au lieu de passer par cet outils d'ORM..?

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Malheureusement non

    Je n'ai pas vraiment le choix sur ce coup là

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    bon j'ai pas trouvé mieux, je vais faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM toto t
    WHERE lower(t.name) = lower('Titi');
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SELECT : problème de casse
    Par pcayrol dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 07/06/2007, 11h53
  2. SELECT : problème de casse
    Par pcayrol dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/06/2007, 08h04
  3. [MySQL] Requête SELECT avec LIKE : pb de CASSE
    Par pcayrol dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/06/2007, 21h11
  4. [MySQL] Récupérer une valeur avec SELECT sensible à la casse
    Par nuphius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/01/2007, 16h21
  5. [Requête] SELECT sensible à la casse
    Par joefou dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 15h23

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