SQL顺序按字母顺序不带前面的零,小于10的数字

jus*_*inl 3 mysql alphanumeric

是否可以按以下方式在mySQL中按字母顺序排序:

A1
A2
A3
A5
A10
A11
A20
A23
A24

不幸的是,我收到的订单如下所示.请注意A10之前的任何数字是如何组合在一起的?

A1
A10
A11
A12
A2 <A2
A20
A23
A24
A3 <A3
A5 <A5

注意:这些字母数字字符串实际上是邮政编码,所以我不能放A01,因为这在技术上不是邮政编码前缀.我还想避免让用户输入其他数据来帮助系统正确排序,因为我的用户不是非常精通网络.此外,这些字母数字字符串将无法以正确的顺序输入到数据库中,因为它们可以随时删除和添加.

Nei*_*l N 5

创建一个将varchar转换为数值的UDF.然后在查询的ORDER BY子句中使用该函数.

基本上你的函数会为每一行分配一个数值,比如A的ASCII值(或者第一个字母是什么)*100 + varchar其余部分的解析数字.