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!