IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Optimisation du LIKE dans une Requete SQL


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 207
    Points : 60
    Points
    60
    Par défaut Optimisation du LIKE dans une Requete SQL
    Bonjour tout le monde, je souhaiterais faire une recherche dans une base de données.
    Le LIKE ne me semble pas suffisamment pertinent pour obtenir les résultats que je recherche.
    Je m'explique :
    si dans ma base de données, j'ai les lignes suivantes :
    - Vert
    - Vert pomme
    - Rouge
    - Rouge Orangée
    - Blanc
    - Blanc crème

    j'aimerais pour une requête vert pomme avoir les résultats suivants :
    - vert
    - vert pomme
    Ce n'est pas le cas avec un LIKE

    Avez vous une idée de ce que je pourrais utiliser pour mettre en oeuvre ce genre de requête

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    c'est un like qu'il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ma_col like 'vert%'

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Tu devrais essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where "Vert pomme" regexp CONCAT('^',macol);
    Je pense que ça fonctionne, mais je ne sais pas du tout si c'est la bonne façon de faire.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 24
    Points
    24
    Par défaut
    La réponse de Fred_34 fonctionne. Tu peux également la faire sous forme d'un LIKE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE 'vert pomme' LIKE CONCAT(`macol`, '%' )
    Le problème est que si tu cherches "vert", tu ne trouveras pas "vert pomme". Tu peux ajouter la condition "opposée" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE 'vert' LIKE CONCAT(`macol`, '%') OR `macol` LIKE 'vert%'
    Comme ça, si tu cherches "vert" ou "vert pomme", tu trouveras tous les "vert".

    Une recherche plus fine pourrait se faire en découpant les termes de la recherche en mots :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE `macol` LIKE '%vert%' OR `macol` LIKE '%pomme%'

Discussions similaires

  1. [Python 2.X] passage de variable dans une requete sql like
    Par repgarent dans le forum Général Python
    Réponses: 5
    Dernier message: 06/11/2014, 05h37
  2. Date et Like dans une requete
    Par skunkies dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/08/2005, 18h35
  3. [OPTIMISATION] [UNION] Union dans une requete
    Par nico44 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/03/2005, 12h47
  4. Plusieurs LIKE dans une requete ?
    Par beastman007 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/02/2005, 12h10
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo