Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据mysql中的字符对字母数字值进行排序_Mysql_Sql - Fatal编程技术网

根据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);