SQLite排序varchar字母数字列表

时间:2018-09-05 07:57:01

标签: sqlite sorting varchar alphanumeric

我正在用SQLite作为后端编写一个音乐程序,我正在尝试找出如何按照我想要的顺序对所有专辑进行排序。从理论上讲,这很容易,但是下面是我遇到的奇怪问题。

接这三张专辑-当使用SELECT DISTINCT专辑FROM专辑ORDER BY专辑COLLATE NOCASE时,如何按顺序将它们排序:

现在这就是我所说的音乐! 10 现在这就是我所说的音乐! 99 现在这就是我所说的音乐! 100

与之相对的是:

现在这就是我所说的音乐! 10 现在这就是我所说的音乐! 100 现在这就是我所说的音乐! 99

如果可以的话,我希望100跟随99。

1 个答案:

答案 0 :(得分:0)

Shawn为您提供了所见即所得的解释,并提供了通过编写自定义整理函数来获得所需内容的可能性。

但是,您真的有一些专辑名称如“ Now That's What I Call Music!10”吗?我的猜测是“ 10”是某种区分代码,在这种情况下,更好的解决方案是重新设计数据库架构,以从区分代码(即两个单独的列)中分离出实际名称。这样,您可以对两个字段进行排序,例如ORDER BY Album_name, distinguishing code

(创建表时,您可能还希望两个字段的组合是唯一的,例如UNIQUE (Album_name, distinguishing_code)