2015-02-08 111 views
1

我创建了“book”表。内容提供商的排序顺序

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', 'ေညး', 'တခါက', '၁၀၀'); ",}; 

当我用'ASC'排序第一列“bcode”时,输出是这样的。

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

我想要得到像这样的表单。

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

我该如何排序?

+1

'bcode'是一个整数值?如果你的答案是肯定的,那么改变从'TEXT'到'INTEGER'的分贝类型,这将解决你的问题 – 2015-02-08 06:10:51

+0

没有。我想用“bcode”作为TEXT。 – 2015-02-08 06:16:36

+1

使用'bcode'作为'TEXT'会将它排序为文字,正如我在答案中所解释的那样,就像您的联系人在您的手机中排序一样。 排序的文本是不同的数字排序 – dmSherazi 2015-02-08 06:20:57

回答

2

这是因为您声明bcodeTEXT,将其更改为INTEGER

作为文本是由字符排序字符,因此任何事情开始1将始终与2启动一个之前显示,如果你正在按升序排序

如果您坚持使用TEXT作为bcode类型,则可以使用的另一种方法是您修复了最大长度为bcode并使用前导零。如果你决定4的长度让你bcodes应该像0001,0002,0003 ... 0011,0012...1111 ...

1

bcode类型是TEXT只是改变你的数据类型INTEGER