Partage
  • Partager sur Facebook
  • Partager sur Twitter

requête SQL

requête qui trie les même valeurs dans tous les lignes d' un champ

    8 juillet 2019 à 20:45:22

    salut à tous! j'ai une table qui contient une enregistrement dont un champ  contenant plusieurs noms qui se répète plusieurs fois. (par exemple: nom du champ = "mes amis"; contenu = pierre, pierre, pierre, lucie, lucie, jean), existe-t-il une requête qui récupère juste : pierre, lucie, et jean? c'est à dire parmi tous les lignes du champ " mes amis" qui on les mêmes valeur, je n'en prend qu'une

    -
    Edité par NantenainaAndriniaina 8 juillet 2019 à 20:46:46

    • Partager sur Facebook
    • Partager sur Twitter
    Bonne journée à vous tous !
      8 juillet 2019 à 20:56:05

      Bonjour.

      Tu as mal pensé ta structure de table, utilises plutôt une seconde table pour sauvegarder les amis, dans laquelle tu sauvegardes l'id de l'utilisateur et l'id de l'autre utilisateur en tant qu'ami et tu fais une relation entre les deux tables.

      Par contre pourquoi avoir créé ton sujet dans la section PHP ?

      Ton sujet aurait plus sa place dans la section Base de données.

      -
      Edité par Lartak 8 juillet 2019 à 21:02:33

      • Partager sur Facebook
      • Partager sur Twitter

      Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

        8 juillet 2019 à 21:25:14

        Bonjour,

        Mauvais forum

        Le sujet est déplacé de la section PHP vers la section Base de données

        Bonjour,

        Mauvais titre

        Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

        Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

        De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

        Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

        Pour modifier votre titre, éditez le premier message de votre sujet.

        (titre originel : requête SQL)

        -
        Edité par AbcAbc6 8 juillet 2019 à 21:26:50

        • Partager sur Facebook
        • Partager sur Twitter
          9 juillet 2019 à 11:49:11

          Utilise le mot-clé DISTINCT :

          SELECT DISTINCT champ1, champ2...



          • Partager sur Facebook
          • Partager sur Twitter
            9 juillet 2019 à 12:41:41

            Zachee54 a écrit:

            Utilise le mot-clé DISTINCT :

            SELECT DISTINCT champ1, champ2...
            Non, relis bien le contexte, tu verra qu'utiliser DISTINCT ne lui servira à rien dans la situation.

            • Partager sur Facebook
            • Partager sur Twitter

            Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

              9 juillet 2019 à 14:22:31

              Lartak a écrit:

              Zachee54 a écrit:

              Utilise le mot-clé DISTINCT :

              SELECT DISTINCT champ1, champ2...

              Non, relis bien le contexte, tu verra qu'utiliser DISTINCT ne lui servira à rien dans la situation.

              En lisant la question, je me demande si pierre,pierre,pierre,lucie,lucie,jean figurent dans la même ligne, ou si ce sont des valeurs se trouvant dans différentes lignes du champ "mes amis" ?

              J'opte pour la deuxième interprétation en me fiant à la fin de la question :

              NantenainaAndriniaina a écrit:

              c'est à dire parmi tous les lignes du champ " mes amis" qui on les mêmes valeur, je n'en prend qu'une

              Dans ce cas c'est bien DISTINCT qu'il faut utiliser, non ?
              • Partager sur Facebook
              • Partager sur Twitter
                9 juillet 2019 à 14:40:18

                Je pense que Lartak a raison, la table est dénormalisée ... il stocke plusieurs valeurs dans la même colonne pour un même enregistrement ...

                Mais attendons de voir si NantenainaAndriniaina apporte des éléments de réponse ...

                • Partager sur Facebook
                • Partager sur Twitter
                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                  9 juillet 2019 à 14:45:12

                  Dans son cas, la colonne mes amis à pour valeur d'un enregistrement pierre, pierre, pierre, lucie, lucie, jean (selon son exemple).

                  En ayant à priori plusieurs fois une même valeur dans la chaîne de caractères (pierre, lucie), il ne peut ni savoir si par exemple pierre est le même ami ou si ce sont différents amis qui auraient par exemple le même prénom.

                  En utilisant DISTINCT sur cette colonne, seule la valeur complète sera prise en compte, donc si dans un autre enregistrement il à la même valeur mais dans un autre ordre, soit par exemple jean, lucie, lucie, pierre, pierre, pierre, l'enregistrement ne sera pas prit dans le DISTINCT par rapport à l'autre.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                    9 juillet 2019 à 19:57:58

                    merci , c'est réglé ! SELECT DISTINCT est la solution...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Bonne journée à vous tous !

                    requête SQL

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown