Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2005, 15h19   #1
Invité de passage
 
Inscription : juillet 2005
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 12
Points : 4
Points : 4
Par défaut requete sans prendre en compte la casse

Voila j'ai une fonction qui pren un argument en parametre et que j'utilise dasn une requete du style:
select * from book where titre like $1||'%';
Mais quand je lance une recher avec une majuscule dans le paramètre la requete ne trouve pas les titres qui commmence par une minuscule...
Voila mon souci j'aimlerai ke la requete ne prenne pas en compte la casse du parametre.
merci.
clems34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2005, 17h48   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
tu peux utiliser ILIKE :

Code :
SELECT * FROM book WHERE titre ilike $1||'%';
ca ignore la casse
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h09   #3
Membre du Club
 
Inscription : mai 2006
Messages : 210
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 210
Points : 65
Points : 65
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 :
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.
nicofromChina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h16   #4
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
ce que hpalpha t'a dit fonctionne très bien!
  Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h27   #5
Membre du Club
 
Inscription : mai 2006
Messages : 210
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 210
Points : 65
Points : 65
Tu veux dire en faisant comme ça ?
Code :
WHERE a.country LIKE '%inland'
nicofromChina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h38   #6
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Que tu tapes:

Code :
1
2
3
 
 
WHERE a.country ILIKE 'Finland'
ou

Code :
1
2
 
WHERE a.country ILIKE 'finland'
Ca fonctionnera.

Attention:Bien mettre le 'I' devant le Like.
  Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h41   #7
Membre du Club
 
Inscription : mai 2006
Messages : 210
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 210
Points : 65
Points : 65
Apparement le "ilike" ne marche pas. Je suis sous Oracle Express Edition.
nicofromChina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h45   #8
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
le probleme c'est qu'ici t'es sous le forum Postgresql.

Je ne pourrai malheureusement pas t'aider sous oracle
  Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 20h52   #9
jnore
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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 :
1
2
3
4
5
 
 
SELECT UPPER(champ)
FROM TABLE
WHERE champ LIKE UPPER('Finland')
  Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 21h03   #10
Membre du Club
 
Inscription : mai 2006
Messages : 210
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 210
Points : 65
Points : 65
Moi ça me va

Merci à toi
nicofromChina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2009, 21h58   #11
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : octobre 2007
Messages : 39
Points : 12
Points : 12
Envoyer un message via MSN à sebkill
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
sebkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2009, 12h51   #12
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
ILIKE est propre à PGSQL...et pas très optimisé à priori

comme proposé plus haut (enfin presque) :

Code :
1
2
3
SELECT champ
FROM TABLE
WHERE  UPPER(champ) LIKE UPPER('Finland')
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2009, 15h14   #13
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
Citation:
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 :
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2009, 16h50   #14
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
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é...
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h29.


 
 
 
 
Partenaires

Hébergement Web