Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
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 08/02/2011, 11h17   #1
Invité de passage
 
Benoît Bouillon
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Benoît Bouillon

Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
Par défaut Requête Like %%

Bonjour,

malgré mes recherches je n'ai pas trouvé la façon de sélectionner certaines chaînes de caractères dans un champ en fonction de certains critères.

On utilise % dans la requête losrqu'on accepte un nombre quelconque de caractères intercalés (0...n caractères).
Mon soucis est la valeur 0.
Ex: je cherche le mot CYCLE
Requête:
Code :
SELECT * FROM BASE WHERE MOT LIKE '%Y%L%'
On va obtenir tous les mots y compris les mots où le Y et le L se touchent (LY) alors que je voudrais qu'il y ait au moins une lettre entre les deux (YCL).

Je voulais éviter de devoir traiter la chaîne de caractères après la requête.

Merci de votre aide en espérant que ce soit clair.

BB
BBouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 12h07   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
le underscore c'est 1 strictement. sinon ya les regex.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h10   #3
Invité de passage
 
Benoît Bouillon
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Benoît Bouillon

Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
Merci Gene,

oui %_% donne un caractère mais s'il y en a plusieurs ça ne marche pas.
Dans un premier temps je vais traiter les chaînes obtenues et ensuite je vais essayer d'apprendre les regex, je ne connaissais pas.

Merci.

BB
BBouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 14h14   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Peux-tu nous dire en quoi ça ne marche pas ? Je viens de tester ça, où le LIKE est bien vérifié.

Code :
SELECT 'azertyuioplm' LIKE '%Y_%L%' ;
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 15h10   #5
Invité de passage
 
Benoît Bouillon
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Benoît Bouillon

Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
Sorry Antoun,

je me suis mal exprimé; bien sûr ça marche mais je voulais obtenir le cas où on avait "E%U" et que la requête donne EAU, ECU, ELU, EMU mais pas EU.

Merci.

BB
BBouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 15h38   #6
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
bah, si tu fais %E_%Y%, comme indiqué par gene69, ça gère ce cas-là.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 07h49   #7
Invité de passage
 
Benoît Bouillon
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Benoît Bouillon

Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
Ahh mais oui, il y aura d'office au moins un caractère.

Merci à vous deux.

BB
BBouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h52.


 
 
 
 
Partenaires

Hébergement Web