Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] SQLite

    5 août 2012 à 17:28:01

    Bonjour,

    je voudrais exécuter une méthode query() avec la clause DISTINCT mais je ne peux pas exécuter cette méthode sur une colonne d'une table sans l'identifiant?

    lien de la méthode query() sur android developers

    Comment faire?


    Cordialement.
    • Partager sur Facebook
    • Partager sur Twitter
      8 août 2012 à 9:34:16

      Bonjour,

      Je suis pas super bon en SQL mais qu'elle utilisation as-tu tenté de faire avec cette méthode ?
      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        15 août 2012 à 17:48:52

        Bonjour, merci de ta réponse.

        j'ai une table avec des clients avec un identifiant en clé primaire, un nom, un prénom et d'autres colonnes. Je voudrais récupérer juste les noms des clients mais je ne veux pas qu'il répète les mêmes noms dans le curseur. Pour cela j'utilise la clause DISTINCT dans la méthode query() que j'ai cité ci-dessus en mettant un true là où il faut dans la méthode mais en fait je ne peux apparemment pas utilisé cette méthode sans avoir des les colonnes sélectionnés l'identifiant de la table. Le problème si j'ajoute l'identifiant des tables, le curseur va répéter tous les noms identiques dans le curseur.
        • Partager sur Facebook
        • Partager sur Twitter
          15 août 2012 à 22:57:56

          Peux-tu donner un exemple d'instruction que tu aimerais voir fonctionner mais qui ne fonctionne pas ?
          • Partager sur Facebook
          • Partager sur Twitter
          Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
            16 août 2012 à 13:16:53

            J'applique cette méthode à une base de données de type SQLiteDatabase :
            database.query(true, table, columns, null, null, null, null, null, null, null);
            

            avec table = le nom de ma table client et columns = la colonne nom de ma table client.

            Le code compile et s'exécute mais quand j'arrive à l'activité qui lance cette méthode, l'application bug et le logcat Android me dit qu'il manque la colonne _id qui est l'identifiant de ma table. Quand j'ajoute cette colonne _id, l'application fonctionne mais les noms se répètent malheureusement.
            • Partager sur Facebook
            • Partager sur Twitter
              21 août 2012 à 11:41:35

              Dans tous les cas, il faut que tu possèdes cette colonne _id. Après, c'est étrange qu'il te donne les tuples multiples. Sans doute qu'il fait son distinct sur tes identifiants et non pas sur la colonne spécifiée. J'ai lu que, de base, SQLite ne pouvait pas faire de requête DISTINCT. Ta requête est sans doute limité dans son utilisation.
              • Partager sur Facebook
              • Partager sur Twitter
              Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.

              [Android] SQLite

              × 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