我有一个包含用户条目描述的列,这些描述可以是任何内容,但我确实需要将它们按逻辑顺序排序。
文字可以是任何类似的 16至26个月 40至60个月 读写能力 数学
当我在sql语句中订购这些文本项时,返回正常。但是,任何以数字开头的都会以不符合逻辑的顺序返回
即
16至26个月 将在之前 8至20个月
我理解为什么它需要第一个字符等但不知道如何改变sql语句(使用sqlite)来提高性能而不会弄乱以文本开头的条目
当我转换为数字时,数字很好,以文字开头的项目出错了
由于
答案 0 :(得分:0)
您需要的是以“自然顺序”对值进行排序。为此,您需要实现自己的collating sequence; SQLite没有为这种情况提供一个。
这里有关于此主题的一些问题(和答案),但它们适用于其他RDBMS。我在快速搜索中找到的最好的是:
http://wiki.ozanh.com/doku.php?id=python:database:sqlite:how_to_natural_sort
您应该考虑改进表格架构,例如: G。将句点拆分为单独的整数列(monthsMin,monthsMax)而不是使用文本,这将使排序更容易。如有必要,您始终可以根据此值构建字符串。