Statement le moins restrictif pour une recherche [SQL] - Programmation
Marsh Posté le 07-01-2002 à 11:20:20
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... 
Marsh Posté le 07-01-2002 à 12:08:50
j'avait vu unenouvelle possibilité de mysql mais je l'ai jamais mis en oeuvre: 
 
http://dev.nexen.net/docs/mysql/an [...] Search.php 
Marsh Posté le 07-01-2002 à 16:47:42
| 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  
 
Marsh Posté le 07-01-2002 à 17:44:56
 
  
Sous Oracle, ça marche   
 
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]
Marsh Posté le 06-01-2002 à 13:09:45
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!