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 :

Recherche multi mot, expression,etc


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Par défaut Recherche multi mot, expression,etc
    Bonjour.

    J'ai réalisé une petite zone de recherche sur mon site. Cette dernière permet de rechercher un ou des mots, expressions,etc

    Mon problème est que je souhaite faire en une seule requête une recherche sur un ensemble de mot ou expression le tout séparé par des virgules.

    Est-ce possible ? Si oui, comment ?

    Merci pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    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 290
    Par défaut
    Tu n'es pas très précis sur ce que tu veux :

    - la recherche doit-elle porter sur une ou plusieurs colonnes ?
    - veux-tu détecter des mots ou bien le mode "contient" te suffit-il ? (autrement dit, si tu cherches "viseur", veux-tu trouver "superviseur" ou non ?)
    - tous les mots-clés sont-ils obligatoires ou non ?

    Je t'invite à aller faire un tour par là...
    http://dev.mysql.com/doc/refman/5.0/...xt-search.html

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Par défaut
    Voici quelques précision :

    - Ma recherche doit se faire sur 2 champs de 2 tables différentes.
    - La recherche doit être non stricte

    Je pensais qu'on pouvait faire un "like in" avec une liste de valeur.

    Merci pour ta réponse, j'espère avoir été plus précis.

  4. #4
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Dit comme ça ça sent le JOIN avec "WHERE champA LIKE '%toto%' OR champB LIKE '%titi%'" ou toute autre combinaison avec AND et OR suivant la logique voulue.

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    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 290
    Par défaut
    Citation Envoyé par romuald07
    - Ma recherche doit se faire sur 2 champs de 2 tables différentes.
    ok
    Citation Envoyé par romuald07
    - La recherche doit être non stricte
    ça veut dire quoi ?
    Citation Envoyé par romuald07
    Je pensais qu'on pouvait faire un "like in" avec une liste de valeur.
    Hélas, LIKE et IN ne sont pas compatibles.

    si par exemple tu veux chercher "toto" et "tata" obligatoires dans Col1 et/ou Col2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WHERE (Col1 LIKE '%toto%' OR Col2 LIKE '%toto%')
      AND (Col1 LIKE '%tata%' OR Col2 LIKE '%tata%')
    ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WHERE CONCAT(Col1, Col2) LIKE '%toto%'
      AND CONCAT(Col1, Col2) LIKE '%tata%'

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

Discussions similaires

  1. recherche multi mot clé
    Par thomix68 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/03/2011, 22h40
  2. [MySQL] Champ de recherche multi mots
    Par Shenbryl dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/08/2008, 17h26
  3. [RegEx] Recherche sur mots-clés par expression régulière
    Par zaknaou dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2008, 14h04
  4. Créer une fonction de recherche multi début de mot
    Par Pakkaï dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 29/03/2007, 17h16
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

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