【问题标题】:Sort order in content provider内容提供程序中的排序顺序
【发布时间】:2015-02-08 06:05:38
【问题描述】:

我创建了“书”表。

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

如何排序?

【问题讨论】:

  • bcode 是整数值?如果您的回答是肯定的,那么在 db 中将类型从 TEXT 更改为 INTEGER,这将解决您的问题
  • 没有。我想使用“bcode”作为 TEXT。
  • bcode 用作TEXT 会将其排序为文本,正如我在回答中解释的那样,它的排序方式就像您的联系人在您的手机中排序一样。文本排序不同于数字排序
  • 查看stackoverflow.com/questions/11489055/…,或许能帮到你
  • 我明白了。我将其更改为整数。感谢您的解释

标签: android


【解决方案1】:

是因为你将bcode声明为TEXT,改成INTEGER

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多