在android sqlite中select不同的值

我尝试在android中运行以下原始查询,似乎不工作

String query ="SELECT DISTINCT category FROM event"; Cursor cursor = mDb.rawQuery(query, null); if (cursor != null) { cursor.moveToFirst(); } return cursor; 

所以我决定在android中使用query()方法

 Cursor mCursor = mDb.query(EVENT_TABLE, new String[] {KEY_ROWID, KEY_CAT}, null, null,null,null, null) 

任何人都可以告诉我如何使用查询()而不是原始查询select不同的类别,任何帮助将不胜感激!

Solutions Collecting From Web of "在android sqlite中select不同的值"

你可以使用这个方法:

 public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 

这里第一个参数指定是否使用不同的。

但是你必须记得在GROUPBY发送参数( NOT NULL send)。

您必须提供不同的列名称。

例:

 Cursor cursor = db.query(true, YOUR_TABLE_NAME, new String[] { COLUMN_NAME_1 ,COLUMN_NAME_2, COLUMN_NAME_3 }, null, null, COLUMN_NAME_2, null, null, null); 

真 – 不同的真

COLUMN_NAME_2 – 名称列你已经DISTINCT。

这对我很好。

有多种方式,因为已经打了绿。 但是,如果有人正在通过原始查询来获得它,那么你去:

 String query = "SELECT DISTINCT(category) FROM event"; 
 Cursor res=db.rawQuery("select column1 column2... Distinct column3 from "+Table_name, null); 

column3是一个不同的列