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 :

[REGEXP] - A et B


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut [REGEXP] - A et B
    Bonjour tout le monde !

    Petite question, ça doit pas être super complexe, mais là j'avoue que je suis en train de m'arracher les cheveux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM `jeux`
    WHERE nom_jeu REGEXP ('les|rail')
    C'est bien gentil, ca m'affiche tout ce qui contient ou "les" OU "rail". Mais est ce qu'il est possible d'avoir uniquement les réponses qui contiennent "les" ET "rail" ?

    Non parceque ça serait tout de même bien pratique ......et effectivement, les expressions régulières, c'est pas mon fort

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Avec un LIKE ?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM jeux WHERE nom_jeu LIKE '%les%' AND nom_jeux LIKE '%rail%')

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Citation Envoyé par Xunil
    Avec un LIKE ?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM jeux WHERE nom_jeu LIKE '%les%' AND nom_jeux LIKE '%rail%')
    Justement, j'aimerai éviter les LIKE...

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par Seb06
    Justement, j'aimerai éviter les LIKE...
    Pourquoi donc ???

    Si tu y tiens vraiment tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE nom_jeu REGEXP 'les' AND nom_jeu REGEXP 'rail'
    ou encore ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE nom_jeu REGEXP 'les.*rail|rail.*les'
    Mais dans les deux cas, c'est écraser une mouche avec un marteau-pilon. LIKE est plus simple et plus efficace.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Bon, et bien je vais utiliser les LIKE alors puisque ça a l'air de faire l'unanimité

    Merci pour vos réponses !

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    au passage, attention à ce que tu cherches vraiment ! Avec les LIKE (ou même les REGEXP que je t'ai donnés), tu cherches les deux séries de caractères "les" et "rails". Autrement dit, un texte comme raillement et télescopage vérifierait ta condition.

    Si tu cherches les mots "les" et "rails", il te faut effectivement utiliser des regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nom_jeu REGEXP '[[:<:]]les[[:>:]]' 
      AND nom_jeu REGEXP '[[:<:]]rail[[:>:]]'
    La recherche full-text en mode booléen pourrait aussi être une solution, à condition de la customiser un peu ("les" ne fait que trois lettres et risque d'être dans la liste des stopwords).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. [langage] [RegExp] Détecter un chemin Windows
    Par GLDavid dans le forum Langage
    Réponses: 3
    Dernier message: 01/09/2004, 14h57
  3. [langage] [RegExp] Récupérer une portion de phrase
    Par GLDavid dans le forum Langage
    Réponses: 4
    Dernier message: 27/08/2004, 22h01
  4. [langage] [RegExp] Question d'expression régulière
    Par cloogy dans le forum Langage
    Réponses: 5
    Dernier message: 08/10/2003, 09h29
  5. regexp
    Par mathieu gérard dans le forum ASP
    Réponses: 4
    Dernier message: 02/10/2003, 18h05

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