0

在数据库中,它存储的值是

M2345
45
M345
E21
A3 

有没有办法正确排序?喜欢

A3
E21
45
M345
M2345
4

1 回答 1

2

假设在数字开始之前最多可以有一个字母,您可以在排序定义中使用这样的条件:

ORDER BY CAST(IF(col REGEXP '^[a-z]', SUBSTRING(col, 2), col) AS SIGNED)

不幸的是,MySQL 没有可以处理正则表达式的替换函数,否则此时这将非常有用。

您可能还需要考虑将数值本身存储在单独的计算字段中,以便更有效地进行排序。

于 2013-10-03T04:01:11.467 回答