Problème requete SQL

Problème requete SQL - Programmation

Marsh Posté le 07-06-2002 à 10:21:15    

J'ai nu problème je fais une requête SQL :  
select nom from ma_table where designation like('%mon_mot%';);
Je voudrait que la requete puisse traité mon_mot qu'il soit en minuscule ou en majuscule! parce ke si mon mot est en majuscule dans ma base et que dans la requete je l'ecris en minuscule il me renvoie aucune reponse alors ke j'en ai une ki correspond!
Merci de l'aide [:yoz]


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 10:21:15   

Reply

Marsh Posté le 07-06-2002 à 10:26:51    

airv3 a écrit a écrit :

J'ai nu problème je fais une requête SQL :  
select nom from ma_table where designation like('%mon_mot%';);
Je voudrait que la requete puisse traité mon_mot qu'il soit en minuscule ou en majuscule! parce ke si mon mot est en majuscule dans ma base et que dans la requete je l'ecris en minuscule il me renvoie aucune reponse alors ke j'en ai une ki correspond!
Merci de l'aide [:yoz]  




 
tu utilises quel SGBD pour ta base ?


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 07-06-2002 à 10:27:54    

le but de like et de % % est utile pour tout chaine qui contient ce qu'il y a entre % %  
 
En ce qui concerne maj/min il faut probablement appliquer une fonction qui dépend du SGBD.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-06-2002 à 10:29:46    

j'utilise une base ORacle 8i


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 10:33:00    

select nom from ma_table where UPPER(designation) like('%MON_MOT%';);
 
Explication : UPPER permet de ne considérer que la forme en majuscule du mot. Tu mets donc MON_MOT en majuscule d'un côté, et tu utilises de l'autre UPPER de ta colonne, comme ça Oracle convertissant tout en majuscule, tu ne te préoccupes plus de la casse.


Message édité par irulan le 06-07-2002 à 10:35:46
Reply

Marsh Posté le 07-06-2002 à 10:33:24    

DarkLord a écrit a écrit :

le but de like et de % % est utile pour tout chaine qui contient ce qu'il y a entre % %  
 
En ce qui concerne maj/min il faut probablement appliquer une fonction qui dépend du SGBD.  




Pour le like j'utilise comme ca le moteur de recherche renvoie tout ce ki est silikaire a la recherche!
Mais mon problème ce sont les majuscule


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 10:34:54    

airv3 a écrit a écrit :

j'utilise une base ORacle 8i  




 
je sais que dans SQL server tu choisis à l'installation si ta base doit être "case sensitive" ou non. regarde dans les options d'oracle voir si tu trouve qqch


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 07-06-2002 à 10:36:55    

irulan a écrit a écrit :

select nom from ma_table where UPPER(designation) like('%MON_MOT%';);
 
Explication : UPPER permet de ne considérer que la forme en majuscule du mot. Tu mets donc MON_MOT en majuscule d'un côté, et tu utilises de l'autre UPPER de ta colonne, comme ça Oracle convertissant tout en majuscule, tu ne te préoccupes plus de la casse.  



Reply

Marsh Posté le 07-06-2002 à 10:45:14    

irulan a écrit a écrit :

 




Merci c'est bon!
Par contre tu vois si le mot commence par une majuscule et le reste minuscule ca marche pas!Exemple si je tape :
SERVLET -> c'est ok!
servlet -> c'est ok!
Servlet -> c'est pas ok!!!


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 10:49:50    

Ah bon ?  :heink:  
Normalement, la commande UPPER met tout le mot en majuscule, indépendamment du fait qu'il y ait une majuscule dedans ou non à l'origine.
Quand tu parles de 'Servlet' c'est pour MON_MOT ou pour le contenu la colonne description ?

Reply

Marsh Posté le 07-06-2002 à 10:49:50   

Reply

Marsh Posté le 07-06-2002 à 10:57:29    

irulan a écrit a écrit :

Ah bon ?  :heink:  
Normalement, la commande UPPER met tout le mot en majuscule, indépendamment du fait qu'il y ait une majuscule dedans ou non à l'origine.
Quand tu parles de 'Servlet' c'est pour MON_MOT ou pour le contenu la colonne description ?  




Oui c'est pour MON_MOT


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:09:37    

:sarcastic:  
Bon je réexplique : quand tu utilises UPPER(description), Oracle va effectuer la recherche sur la colonne description en convertissant en version majuscule toute chaîne de caractère présente dans la colonne, Ok ?
 
Donc pour MON_MOT, il faut que ce soit un mot en majuscule forcément (c'est d'ailleurs pour ça que je l'avais mis en majuscule et en gras dans l'exemple).  
 
PS. Manifestement, Oracle a intégré une fonctionnalité permettant d'effectuer une conversion automatique d'une chaîne tout en minuscule car normalement tu ne devrais rien avoir en retour avec une chaîne de minuscule pour MON_MOT.

Reply

Marsh Posté le 07-06-2002 à 11:14:37    

Ouai smais en fait MON_MOT je le recupère par un serlet (prog java) et c'est l'utilisateur ki tape le mot donc on est pas censé savoir si il va le tapé en majusculke ou minuscule


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:22:51    

airv3 a écrit a écrit :

Ouai smais en fait MON_MOT je le recupère par un serlet (prog java) et c'est l'utilisateur ki tape le mot donc on est pas censé savoir si il va le tapé en majusculke ou minuscule  




ben tu fais :
select nom from ma_table where UPPER(designation) like('%UPPER(MON_MOT)%';);


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 07-06-2002 à 11:25:29    

mareek a écrit a écrit :

 
ben tu fais :
select nom from ma_table where UPPER(designation) like('%UPPER(MON_MOT)%';);  




je v essayé


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:27:16    

mareek a écrit a écrit :

 
ben tu fais :
select nom from ma_table where UPPER(designation) like('%UPPER(MON_MOT)%';);  




ca marche carrément pas!


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:29:41    

airv3 a écrit a écrit :

 
ca marche carrément pas!  




en plus si je reprends la première requete :
select nom from table where UPPER(designation) like('%mon_mot%';)
Si l'utilisateur tape le mot en minuscule ca passe pas! il me donne aucune réponse


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:41:50    

Alors pas d'idée???


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 11:55:09    

Ben tu n'as pas la possibilité d'utiliser une fonction pour convertir ton mot en majuscule avant de l'utiliser dans la requête SQL ?

Reply

Marsh Posté le 07-06-2002 à 11:58:07    

irulan a écrit a écrit :

Ben tu n'as pas la possibilité d'utiliser une fonction pour convertir ton mot en majuscule avant de l'utiliser dans la requête SQL ?  




franchement SQL j'en ai fais ke pendant 9 semaine et j'avais un profs bidon!
En fait ma requete je l'utilise dans un programme java qui se connect à une BD


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 12:17:27    

String.toUpperCase();


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-06-2002 à 12:38:00    

DarkLord a écrit a écrit :

String.toUpperCase();  




ouais mais la c'et dans le prog java ke ca convertit en majuscule mais moi je ve ke ca se fasse au niveu du traitement dans la base de donnée


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 12:41:35    

airv3 a écrit a écrit :

 
ouais mais la c'et dans le prog java ke ca convertit en majuscule mais moi je ve ke ca se fasse au niveu du traitement dans la base de donnée  




 
copie la ligne où tu execute cette requète SQL sur le forum, on mettra ce qu'il faut et t'auras juste à la recopier dan ston programme.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 07-06-2002 à 12:45:49    

mareek a écrit a écrit :

 
 
copie la ligne où tu execute cette requète SQL sur le forum, on mettra ce qu'il faut et t'auras juste à la recopier dan ston programme.  




voi la a requete :  
      String req = "SELECT CHEMIN_ACCES, DESIGNATION from PRODUITS where UPPER(REF_PRODUITS) like('%" + rech + "%';) or LOWER(DESIGNATION) like('%" + rech + "%';)";
 
rech ca correspond au mot ke je recupère pour effectuer ma recherche dans la BD!


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 12:55:59    

airv3 a écrit a écrit :

 
voi la a requete :  
      String req = "SELECT CHEMIN_ACCES, DESIGNATION from PRODUITS where UPPER(REF_PRODUITS) like('%" + rech + "%';) or LOWER(DESIGNATION) like('%" + rech + "%';)";
 
rech ca correspond au mot ke je recupère pour effectuer ma recherche dans la BD!  




essaie ça:

Code :
  1. String req = "SELECT CHEMIN_ACCES, DESIGNATION from PRODUITS where UPPER(REF_PRODUITS) like('%" + rech.toUpperCase() + "%')";


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 07-06-2002 à 13:10:22    

mareek a écrit a écrit :

 
essaie ça:

Code :
  1. String req = "SELECT CHEMIN_ACCES, DESIGNATION from PRODUITS where UPPER(REF_PRODUITS) like('%" + rech.toUpperCase() + "%')";

 




ca marche impek, merci, je voyais pas l'utilisation de toUpperCAse com ca!
Merci de ton aide!!!!


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 13:27:02    

[:content]

Reply

Marsh Posté le 07-06-2002 à 13:28:29    

[:zekill]

benoide a écrit a écrit :

[:content]  




 :fuck:  [:zekill]  [:visualc%2B%2B]


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 13:31:47    

[:zork] :bounce:

Reply

Marsh Posté le 07-06-2002 à 14:10:17    

airv3 a écrit a écrit :

 
ouais mais la c'et dans le prog java ke ca convertit en majuscule mais moi je ve ke ca se fasse au niveu du traitement dans la base de donnée  




 
t'es vraiment trop bête toi franchement.  
 
 :gun:  :gun:  :gun:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-06-2002 à 14:35:54    

DarkLord a écrit a écrit :

 
 
t'es vraiment trop bête toi franchement.  
 
 :gun:  :gun:  :gun:  




quest ce ke tu ve on pe pas etre tous aussi intelligent ke toi!
moi je suis un ptit  [:xfalken] ki te  [:iznogoud_23] ou bien je te [:zoub]


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 14:38:49    

ouais mais non c'est ta réflexion qui est vraiment stupide. Désolé mais bon là quand meme :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-06-2002 à 14:45:04    

DarkLord a écrit a écrit :

ouais mais non c'est ta réflexion qui est vraiment stupide. Désolé mais bon là quand meme :)  




Je sais mais ke ve tu!


---------------
Un jour je me suis dit je vais tout niqué...
Reply

Marsh Posté le 07-06-2002 à 14:58:50    

airv3 a écrit a écrit :

 
quest ce ke tu ve on pe pas etre tous aussi intelligent ke toi!
moi je suis un ptit  [:xfalken] ki te  [:iznogoud_23] ou bien je te [:zoub]  




 
forcement si tu te tape frénétiquement la tête contre les murs, ton cerveau va beaucoup moins bien marcher pour la programmation apres.  :D


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed