Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1441 connectés 

  FORUM HardWare.fr
  Programmation

  [SQL] Statement le moins restrictif pour une recherche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Statement le moins restrictif pour une recherche

n°86536
PIIBurner
Posté le 06-01-2002 à 13:09:45  profilanswer
 

Bonjour,
 
Je souhaite faire une recherche sur des chaines de caractères et je souhaite que la requette SQL soit la moins restrictive possible:
1. comment ignorer les majuscules/minscules,
2. Quel est le caractère d'échappement (% en mySQL me semble t'il)
 
Merci d'avance!

mood
Publicité
Posté le 06-01-2002 à 13:09:45  profilanswer
 

n°86643
irulan
Posté le 07-01-2002 à 11:20:20  profilanswer
 

1. Il suffit de convertir les 2 chaînes composant le critère en majuscule :
SELECT... FROM... WHERE UPPER(Nom_Colonne1) = UPPER(Nom_Colonne2)
 
2. caractère d'échappement = %
Exemple : WHERE Nom_mois LIKE 'Jan%' renverra tous les mois commençant par 'Jan'
Attention, WHERE Nom_mois LIKE 'Ma%' renverra Mars et Mai !
 
Un mix des 2 points précédents donnera :  
... WHERE UPPER(Nom_mois) like 'MA%'
et renverra indifféremment MARS, mars, MAI, mai, Mars, Mai...

n°86657
speedyop
Posté le 07-01-2002 à 12:08:50  profilanswer
 

j'avait vu unenouvelle possibilité de mysql mais je l'ai jamais mis en oeuvre:
 
http://dev.nexen.net/docs/mysql/an [...] Search.php

n°86769
joce
Architecte / Développeur principal
"BugHunter"
Posté le 07-01-2002 à 16:47:42  profilanswer
 

irulan a écrit a écrit :

1. Il suffit de convertir les 2 chaînes composant le critère en majuscule :
SELECT... FROM... WHERE UPPER(Nom_Colonne1) = UPPER(Nom_Colonne2)
 
2. caractère d'échappement = %
Exemple : WHERE Nom_mois LIKE 'Jan%' renverra tous les mois commençant par 'Jan'
Attention, WHERE Nom_mois LIKE 'Ma%' renverra Mars et Mai !
 
Un mix des 2 points précédents donnera :  
... WHERE UPPER(Nom_mois) like 'MA%'
et renverra indifféremment MARS, mars, MAI, mai, Mars, Mai...  




Le like ou le = n'est pas case sensitif si les champs sont pas avec la caractéristique  BINARY, donc le UPPER est inutile :)

n°86807
irulan
Posté le 07-01-2002 à 17:44:56  profilanswer
 

:non:  
Sous Oracle, ça marche  :p
Je viens de tester :
Where Nom_Mois like 'NOV%' ne me renvoie que les lignes avec NOVEMBRE, alors que Where UPPER(Nom_Mois) like 'NOV%' me renvoie toutes les lignes de la table avec 'NOVEMBRE' ou 'Novembre' !
 
Et ma colonne de nom est un varchar2(10)...

 

[edtdd]--Message édité par irulan--[/edtdd]

n°91360
joce
Architecte / Développeur principal
"BugHunter"
Posté le 20-01-2002 à 22:09:59  profilanswer
 

moi je parlais de MySQL :D
PE que oracle est case sensitif :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [SQL] Statement le moins restrictif pour une recherche

 

Sujets relatifs
[Delphi/SQL] Big probleme de comparaisons de date en SQL-> access :(Alimentation PL/SQL d'une bas Oracle dénormalisée...
[SQL Server 7] est il possible de planifier ...[Delphi/SQL] Inclure le contenu d'un Tedit dans une requete SQL ...
Recherche librairie....[ASP et SQL] Probléme pour récupérer la valeur de la fonction sql MAX
[tcl] Connection avec un eggdrop a une base SqL[VB] Interpretation hasardeuse des dates à partir d'une requete SQL ?
REcherche programmeur en PHPHelp SQL !
Plus de sujets relatifs à : [SQL] Statement le moins restrictif pour une recherche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR