2012-04-20 25 views
20

Actualmente estoy trabajando en un proyecto de Android en Eclipse y tengo problemas con mi consulta SQL.android sql - cómo ordena su consulta sql por varias columnas

Estoy tratando de ordenar la consulta por más de dos columnas, actualmente lo estoy haciendo por KEY_DAY_ID pero quiero también lo hace por KEY_START_TIME, pero no puedo conseguir que funcione

mi consulta actualmente se ve así:

Cursor cursor = db.query(TABLE_SESSION, new String[] {KEY_ID, KEY_MODULE_CODE, 
      KEY_DAY_OF_WEEK, KEY_START_TIME, KEY_DURATION, KEY_SESSION_TYPE, KEY_ROOM}, 
      null, null, null, null, KEY_DAY_ID + " ASC"); 

Háganme saber sus pensamientos. ¡Gracias de antemano!

+0

'KEY_DAY_ID + "" + KEY_START_TIME' (ASC es por defecto) - debe ordenar por day_id primero y luego por hora_inicial – zapl

Respuesta

39

El último parámetro en el método db.query() es la cláusula order by (sin el "orden por"). Todo lo que necesita hacer es separar ambas columnas por un ",". Por lo que se vería así:

Cursor cursor = db.query(TABLE_SESSION, new String[] {KEY_ID, KEY_MODULE_CODE, 
     KEY_DAY_OF_WEEK, KEY_START_TIME, KEY_DURATION, KEY_SESSION_TYPE, KEY_ROOM}, 
     null, null, null, null, KEY_DAY_ID + " ASC, " + KEY_START_TIME + " ASC"); 
+0

gracias i necesitaba esta carta "ASC", –

+1

Entonces, ¿cuál tiene mayor prioridad durante la clasificación? –

+3

@AllenZeng el primero. –

1

Esto funciona para mí

SQLiteCursor cursor = (SQLiteCursor) db.query(DbHelper.TIMES, colmn, null, null, null, null, DbHelper.TABLE_DAY + " ASC, " + DbHelper.TABLE_LECTURE_NO + " ASC",null); 
Cuestiones relacionadas