2010-08-15 4 views
0

J'ai une table de base de données avec 3 colonnes: _id, nom, groupNamebase de données Android requête

Il ressemble à ceci:

1 Tom groupe1

2 Sam groupe1

3 Ted group2

4 Jerry Group3

5 Me Group3

Je souhaite interroger la table de base de données pour le nom de groupe. Je l'ai essayé:

public Cursor getAllGroups() 
{ 
     return db.query(DATABASE_TABLE_1, new String[] {KEY_GROUP}, 
      null, null, null, null, null); 
} 

Et cela renvoie un curseur le long de: (groupe1, groupe1, groupe2, Group3, Group3).

Existe-t-il un moyen d'obtenir uniquement des groupes uniques? (Donc, je finirais avec un curseur le long de:. (Groupe1, groupe2, Group3)

de Merci à l'avance

Répondre

1

Je pense que vous avez besoin d'utiliser des requêtes SQL avec mot-clé DISTINCT le code rugueux serait quelque chose comme:.

db.rawQuery("select distinct groupName from "+DATABASE_TABLE_1, null); 

est ici tutoriel SQL sur le mot-clé http://www.sql-tutorial.com/sql-distinct-sql-tutorial/

+0

J'ai lu le tutoriel et il semble que le code que vous avez posté devrait fonctionner (mais ce n'est pas le cas ...). Est-ce que quelqu'un connaît un tutoriel qui explique comment créer des requêtes SQL - c'est-à-dire comment utiliser la fonction rawQuery? J'ai en fait besoin d'un curseur sur les colonnes KEY_ID et KEY_GROUP_NAME. Comment faites-vous une rawQuery qui renvoie un curseur sur plusieurs colonnes? Je sais comment faire avec la fonction de requête standard: db.query (DATABASE_TABLE_1, nouvelle chaîne [] {KEY_ROWID, KEY_GROUP}, null, null, null, null, null); Mais comment faire cela avec rawQuery? –

+0

Je n'ai pas encore joué avec mais le MOTODEVSTUDIO a un outil pour créer des requêtes je pense – schwiz

1

Essayez quelque chose comme

db.rawQuery("select distinct column1, column2, column3 from tablename", null); 
1

Wow. Je l'ai compris. Je poste juste ceci pour aider d'autres qui peuvent avoir le même problème que moi.

étapes pour la construction de requête réussie (pour dev Android):

1) Télécharger et lancer "RazorSQL"

2) Connectez-vous à votre base de données (suivez les instructions à l'écran)

3) Cliquez sur "DB Outils" -> "Query Builder" -> "nom de la table votre base de données"

4) construire votre requête Graphiquement (jouer avec tout, puis cliquez sur "Générer SQL")

5) Copiez l'instruction SQL et collez-la dans la fenêtre de l'éditeur RazorSQL

6) Cliquez sur la flèche verte ("->"). Votre requête est maintenant effectuée sur votre base de données et les résultats sont affichés!

7) Copiez l'instruction SQL, allez dans "Eclipse" (environnement de dev Android) et le coller comme une chaîne en fonction rawQuery()

Cool!

Ainsi, la réponse à ma question est la suivante:

db.rawQuery("SELECT _id, groupName FROM titles GROUP BY groupName", null); 

-> J'ai découvert le "GROUP BY" en jouant dans le générateur SQL graphique

Amusez-vous avec des requêtes SQL!