根据mysql中的字符对字母数字值进行排序
我在列中的值如下根据mysql中的字符对字母数字值进行排序,mysql,sql,Mysql,Sql,我在列中的值如下 001aka, 004heh, 002kol, 007nam, 003wom, 005emn, 006sup 添加ORDERBY子句可以提供值 001aka, 002kol, 003wom, 004heh, 005emn, 006sup, 007nam 但是我希望这些值是根据当前的字符而不是数字值排序的 期望输出: 001aka, 005emn, 004heh, 002kol, 007nam, 006sup, 003wom 如果您正在寻找高性能的解决方案,则需要拆分此字段
001aka,
004heh,
002kol,
007nam,
003wom,
005emn,
006sup
添加ORDERBY子句可以提供值
001aka,
002kol,
003wom,
004heh,
005emn,
006sup,
007nam
但是我希望这些值是根据当前的字符而不是数字值排序的
期望输出:
001aka,
005emn,
004heh,
002kol,
007nam,
006sup,
003wom
如果您正在寻找高性能的解决方案,则需要拆分此字段,并向表中添加一个额外的索引字段以保存拆分的文本。插入和更新时,可以同时保存列值和子字符串值。然后按索引列进行排序 原始列将保留“001aka”,索引列将保留“aka”
如果您有一个大表,纯sql解决方案将降低性能 使用子字符串函数排序怎么样--
select * from test order by substr(column,4,3);