在内容提供商中排序顺序

时间:2015-02-08 06:05:38

标签: android

我创建了#34;书"表

db.execSQL("CREATE TABLE IF NOT EXISTS `book` (`bcode` TEXT, `author_name` TEXT, `book_name` TEXT, `price` TEXT); ");

然后,我把这样的数据。

" insert into book values ('1', 'ေညး', 'တခါက',  '၁၀၀' ); ",
  " insert into book values ('2', 'မင္းတေခတ္', 'သူသာ', '၁၅၀' ); ", 
  " insert into book values ('3', 'မင္းတေခတ္', 'သူသာ', '၁၀၀' ); ", 
  " insert into book values ('4', 'ေညး', 'တခါက', '၁၀၀' ); ", 
  " insert into book values ('5', 'ေညး', 'တခါက',  '၁၀၀' ); ", 
  " insert into book values ('6', 'လြန္းထားထား', 'တခါက', '၁၀၀' ); ", 
  " insert into book values ('7', 'အၾကည္ေတာ္', 'သံုည', '၁၀၀'); ", 
  " insert into book values ('9', 'ေညး', 'တခါက',  '၁၀၀'); ", 
  " insert into book values ('10', 'ေညး', 'တခါက',  '၁၀၀'); ", 
  " insert into book values ('11', 'ေညး', 'တခါက',  '၁၀၀'); ",};

当我排序第一列" bcode"通过' ASC' ,输出是这样的。

'1', 'ေညး', 'တခါက',  '၁၀၀' 
'11', 'ေညး', 'တခါက',  '၁၀၀'
'2', 'မင္းတေခတ္', 'သူသာ', '၁၅၀'
.
.

我希望得到这种形式的订单。

'1', 'ေညး', 'တခါက',  '၁၀၀' 
'2', 'မင္းတေခတ္', 'သူသာ', '၁၅၀'
.
.
.
'11', 'ေညး', 'တခါက',  '၁၀၀'

我该如何排序?

2 个答案:

答案 0 :(得分:2)

之所以如此,是因为您将bcode声明为TEXT,请将其更改为INTEGER

作为文本,它按char排序,因此如果按升序排序,那么以1开头的任何内容将始终显示在以2开头的内容之前

如果您坚持使用TEXT用于bcode类型,则可以使用的另一种方法是修复bcode的最大长度并使用前导零。如果您确定4为长度,那么bcodes应该看起来像0001,0002,0003 ... 0011,0012...1111 ...

答案 1 :(得分:1)

您的bcode类型为TEXT,只需将您的数据类型更改为INTEGER