我的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 :(得分:0)
基本上你必须拆分然后排序。
首先,你的桌面设计似乎是错误的。如果要根据多个条件进行排序,则应将它们存储为单独的列。所以重新设计你的桌子。
如果由于某种原因无法执行此操作,则无法在SQL查询中对其进行排序。 在Array中获取结果,并通过编写自定义排序顺序逻辑对它们进行排序。
答案 1 :(得分:0)
我意识到你在DB中可能有不同的列,但是你用'X'作为分隔符编写了这个例子!!为什么?那让我很困惑!!
所以基本上你想根据不同排序顺序的不同列进行排序。
不要使用db.query方法。准备SQL并使用rawQuery方法执行查询。
SQL应该是:
select * from my_table order by col_a ASC, col_b DSC
答案 2 :(得分:0)
正确答案:
select * from TABLE_SGQ_LIVE order by Q_Id asc, G_id*1, G_id desc