基于mysql中的字符对字母数字值进行排序

jmo0nnb3  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(479)

这个问题在这里已经有答案了

按最后3个字符排序(4个答案)
两年前关门了。
我在列中的值如下

001aka,
004heh,
002kol,
007nam,
003wom,
005emn,
006sup

添加order by子句可提供值

001aka,
002kol,
003wom,
004heh,
005emn,
006sup,
007nam

但我希望这些值是按当前的字符排序的,而不是按数字排序的
期望输出:

001aka,
005emn,
004heh,
002kol,
007nam,
006sup,
003wom
n9vozmp4

n9vozmp41#

如果您正在寻找高性能的解决方案,则需要拆分此字段并向表中添加额外的索引字段以保存拆分的文本。插入和更新时,可以同时保存列值和子字符串值。然后按索引列排序。
原始列将保留“001aka”,索引列将保留“aka”
如果您有一个大表,纯sql解决方案将降低性能。

t9eec4r0

t9eec4r02#

用子串函数排序怎么样--

select * from test order by substr(column,4,3);

相关问题