2016-01-22 327 views
-1

我在我的SQLite数据库中的表,我需要它以这种方式进行排序..如何按特定顺序对SQLite表结果进行排序?

467958 1010 49611 
467958 1010 49612 
467958 1010 49613 
467958 1010 49614 
467958 1010 49615 
467958 1010 49616 
467958 1010 49617 
467958 1010 49618 
467958 1010 49619 
467958 1010 496110 
467958 1010 4961other 

,但我得到这个。

467958 1010 4961other 
467958 1010 49611 
467958 1010 49612 
467958 1010 49613 
467958 1010 49614 
467958 1010 49615 
467958 1010 49616 
467958 1010 49617 
467958 1010 49618 
467958 1010 49619 
467958 1010 496110 

我的代码是。

cursor = db.query(TABLE_SGQ_LIVE, new String[] {SGQ}, 
        null, null, null, null, Q_Id + " ASC, " + G_id + " ASC"); 

我的意思是排序(整数第一和字符串第二)。

+0

你'查询()'调用只选择一列('SGQ'),其与所示的数据不符。请标出栏目。 –

回答

0

基本上你必须拆分然后排序。

首先,你的餐桌设计似乎是错误的。如果您想根据多个条件进行排序,则应将其存储为单独的列。所以重新设计你的桌子。

如果由于某种原因无法完成此操作,则无法在SQL查询中对其进行排序。 在Array中获取结果,并通过编写自定义排序顺序逻辑在Array中进行排序。

+0

//和Q_Id,G_id是表中的字段。阅读代码评论。 –

+0

这一行,....'//其中'467958X1010X496110''X'是SID,G_id,Q_ID的分隔符,只是为了显示列的值来了解列中的数据类型。 –

0

我意识到你可能在DB中有不同的列,但是你用'X'作为分隔符写了这个例子!为什么?这使我困惑!

所以基本上你要根据不同的排序顺序不同colums排序..

不使用的db.query方法。准备一个SQL并使用rawQuery方法执行查询。

SQL应该是:

select * from my_table order by col_a ASC, col_b DSC 
+0

查看这里描述的答案:http://stackoverflow.com/questions/1319793/order-by-on-different-columns-in-different-directions-in-sqlite –

相关问题