SKB*_*sha 5 sqlite sorting android
我有一个带字符的起始名称列表,并以数字结尾: -
ka1, ka10, ka 2, ka, sa2, sa1, sa10, p1a10, 1kb, p1a2, p1a11, p1a.
Run Code Online (Sandbox Code Playgroud)
我想按自然顺序排序,即: -
1kb, ka, ka1, ka 2, ka10, p1a, p1a2, p1a10, p1a11, sa1, sa2, sa10.
Run Code Online (Sandbox Code Playgroud)
我在这里看到的主要问题是文本和数字部分之间没有分隔符,也有可能没有数字部分.
我在android中使用sqlite,我可以通过缓存游标数据获取点后使用java进行排序,但我正在使用(建议使用)游标适配器.
请建议一个查询排序或有没有办法在游标中应用排序?
我尝试了以下自然排序查询:
SELECT
item_no
FROM
items
ORDER BY
LENGTH(item_no), item_no;
Run Code Online (Sandbox Code Playgroud)
它在 Sqlite db 中也对我有用。请参阅此链接了解更多详细信息。
Aru*_*kar -1
更新
您可以使用不同的方法 - 下面提到了其中一些方法:
宾路
SELECT
tbl_column,
BIN(tbl_column) AS binray_not_needed_column
FROM db_table
ORDER BY binray_not_needed_column ASC , tbl_column ASC
Run Code Online (Sandbox Code Playgroud)
施法方式
SELECT
tbl_column,
CAST(tbl_column as SIGNED) AS casted_column
FROM db_table
ORDER BY casted_column ASC , tbl_column ASC
Run Code Online (Sandbox Code Playgroud)
或尝试解决方案:
如果你谷歌一下,就会有很多解决方案,当然,你可以只使用 PHP 中的 natsort() 函数,但在 MySQL 中完成自然排序很简单:首先按长度排序,然后按长度排序。列值。
查询:
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric从这里
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |