Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] La requête retourne des doublons

    18 novembre 2019 à 18:37:45

    Bonjour,

    c'est mon deuxième problème dans la journée mais bon...

    Je fais un requête dans ma base ci-dessous :

    server_id         |prefix|
    ------------------|------|
    559000786655379457|!     |
    134729843343337893|+     |



    Ma requête est la suivante :

    try:
        with connection.cursor() as cursor:
            sql = 'SELECT prefix, server_id FROM servers_settings'
            cursor.execute(sql)
            print("cursor.description: ", cursor.description)
            print(cursor.fetchall())

    Et j'ai ceci qui est print :

    Connect successful !!
    cursor.description:  (('prefix', 253, None, 40, 40, 0, True), ('server_id', 253, None, 120, 120, 0, True))
    [{'prefix': '+', 'server_id': '134729843343337893'}, {'prefix': '+', 'server_id': '134729843343337893'}]

    Je ne vois pas pourquoi ça me renvoie 2 fois la même valeur, au lieu de renvoyer 1 fois chaque valeur...

    Quelqu'un sait ?


    -
    Edité par Gugu7264 18 novembre 2019 à 18:38:33

    • Partager sur Facebook
    • Partager sur Twitter
      19 novembre 2019 à 9:07:12

      Bonjour,

      Je ne connais pas du tout Python, mais si tu vas directement dans MySQL (en console ou avec une interface type PHPMyAdmin) et que tu lances ta requête, quel est le résultat ?

      N'as-tu pas deux lignes identiques dans la table en question ?

      Si tu n'as pas deux lignes ... il y a peut être un fonctionnement de Python qui implique ce résultat ...

      Si tu as deux lignes et que c'est normal, tu peux éviter les doublons avec DISTINCT :

      SELECT DISTINCT prefix, server_id FROM servers_settings

      -
      Edité par Benzouye 19 novembre 2019 à 9:07:46

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        19 novembre 2019 à 16:00:21

        Bonjour, 

        Je n'ai pas 2 lignes identiques dans ma table. 

        Je testerais ce soir que renvoie la requête directement en mySQL



        Bonsoir,

        j'ai donc essayé de faire la requête directement dans DBeaver, et j'obtiens ces résultats :

        Ma table de données de base (complète) :

        server_id         |prefix|
        ------------------|------|
        134729843343337893|+     |
        320924748948348332|-     |
        559000786655379457|!     |

        Ma requête :

        SELECT prefix, server_id FROM servers_settings

        Le résultat de la requête :

        prefix|server_id         |
        ------|------------------|
        +     |134729843343337893|
        +     |134729843343337893|
        -     |320924748948348332|

        Je ne comprends pas pourquoi ce doublon au début, peut-être savez vous pourquoi ?

        Ici la construction de ma table, ci cela peut vous aider :

        CREATE TABLE `servers_settings` (
          `server_id` varchar(30) DEFAULT NULL,
          `prefix` varchar(10) DEFAULT NULL
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8

        Bonjour,

        j'ai donc demandé sur d'autres forums et j'ai eu ma réponse, enfin, je l'ai trouvée par moi même plutôt.

        J'étais donc dans une situation assez étrange, puisque après avoir supprimé la première et la dernière valeur (celles qui ne fonctionnaient pas), les résultats sont retournés à la normale.

        Merci d'avoir essayé de m'aider même si ce n'était pas simple,

        Bonne fin de journée :)



        -
        Edité par Gugu7264 20 novembre 2019 à 14:41:00

        • Partager sur Facebook
        • Partager sur Twitter

        [Python] La requête retourne des doublons

        × 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