Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何按特定顺序对SQLite表结果进行排序?_Android_Sqlite - Fatal编程技术网

Android 如何按特定顺序对SQLite表结果进行排序?

Android 如何按特定顺序对SQLite表结果进行排序?,android,sqlite,Android,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 496

我的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");

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

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

首先,你的桌子设计似乎是错误的。如果要基于多个条件进行排序,则应将它们存储为单独的列。所以重新设计你的桌子

若由于某种原因不能进行排序,那个么就不能在SQL查询中对其进行排序。
在数组中获取结果,并通过编写自定义排序顺序逻辑在数组中排序

我意识到DB中可能有不同的列,但是您编写的示例使用了“X”作为分隔符!!为什么?这让我很困惑

所以基本上你想根据不同的列进行排序,排序顺序也不同

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

SQL应该是:

select * from my_table order by col_a ASC, col_b DSC
正确答案:

select * from TABLE_SGQ_LIVE order by Q_Id asc, G_id*1, G_id desc

请参阅:

//和Q\u Id、G\u Id是表中的字段。阅读code.this行的注释
//其中'467958X1010X496110''X'是SID、G_id、Q_id的分隔符。
仅用于显示列的值,以了解列中的数据类型。请参阅此处描述的答案:
query()
调用仅选择一列(
SGQ
),该列与显示的数据不对应。请给这些列贴上标签。