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

 MySQL Discussion :

requête de recherche


Sujet :

MySQL

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut requête de recherche
    Bonjour à tous,


    Je dispose de ma base mysql, et j'ai réalisé une requête de recherche.
    Dans ma base j'ai plusieurs champs:
    titre | information | produit |fournisseur | client.
    azzz| fiche recette| 10| | |


    Mon collègue à travers un formulaire recherche les termes "recette 10", le problème, c'est que les termes "recette" et "10" sont dans 2 champs différents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT DISTINCT dg.id_id, titre_id, com_id, version_id, chemin_id, document_id, nom_type, nom_gamme, nom_sgamme,  DATE_FORMAT(date_id,'%d/%m/%Y')  AS date_id
                    FROM document_ged dg
                    INNER JOIN type t ON t.id_type=dg.id_type
                    INNER JOIN gamme g ON g.id_gamme=dg.id_gamme
                    INNER JOIN sgamme sg ON sg.id_sgamme=dg.id_sgamme
                    INNER JOIN voir_ged vg ON dg.id_id=vg.id_id
                    INNER JOIN groupe_user gu ON vg.id_groupe_user=gu.id_groupe_user
                    INNER JOIN user_groupe_user ugu ON gu.id_groupe_user=ugu.id_groupe_user
                    WHERE ugu.id_user='1'
                    AND dg.id_societe='1'
                    AND archive_id='0'
                    AND (titre_id LIKE '%recette 10%' OR com_id LIKE  '%recette 10%' OR code_id LIKE  '%recette 10%' )
                    AND date_id BETWEEN STR_TO_DATE('01/01/2005','%d/%m/%Y') AND STR_TO_DATE('31/12/2018','%d/%m/%Y')
                    ORDER BY nom_type, nom_gamme, nom_sgamme";
    Comment modifier ma requête pour prendre ce type de recherche en compte? Fusionner des champs?

    Merci

    guigui69

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Vu comme ça (avec les quelques éléments qu'on a à disposition), je dirais plutôt que le problème vient de la conception du formulaire de recherche. Il faudrait un champ dans le formulaire correspondant à chaque champ dans lequel faire la recherche dans la base de données.
    Sinon, comment sais-tu quel mot de la recherche correspond à quel champ de la base ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci,

    je sais bien mais le but est de simplifier au maximum la page de recherche.
    Et donc je voulais savoir si il y avait une méthode pour qu'il fusionne les champs ensembles et recherche les mots à l'intérieur de ce champ .


    Merci

    guigui69

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Pour concaténer les 2 champs (les fusionner), il suffit d'utiliser la fonction CONCAT(champ1, champ2).
    Ensuite, tu peux toujours tenter une recherche full-text sur la concaténation des 2 champs...

    A voir si ça peut résoudre ton problème.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci pour ta réponse.

    Concernant fulltext il accepte uniquement du text? quelle type de champs?

    merci

    guigui69

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Je revient je suis entrain de tester le fulltext.

    Une question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id_idr FROM `document_gedr`
    WHERE MATCH (client_idr,produit_idr,fournisseur_idr, information_idr) AGAINST ('baguette 10')
    ;

    Si je met baguette 10, il me retourne des résultat mais si je met juste 10 j'ai 0 pourquoi?

    guigui69

Discussions similaires

  1. Optimisation d'une requête de recherche
    Par Bobtop dans le forum Requêtes
    Réponses: 16
    Dernier message: 14/06/2006, 16h27
  2. Requête de recherche dans un forum
    Par Gwipi dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/05/2006, 11h38
  3. requête sur recherche d'un mot
    Par Yaone dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/04/2006, 09h54
  4. Requête sélection : recherche par nom
    Par leeloo77 dans le forum Access
    Réponses: 7
    Dernier message: 17/02/2006, 15h39

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