有没有一种方法可以对包含数字的字符串和数字的值进行排序?

时间:2020-05-18 14:22:59

标签: mysql

我有记录record_id的记录,该记录由字母和数字构成

例如

a1
a2
a11
a12
b1

如果我对此排序,我会得到

a1
a11
a12
a2
b1

我想知道是否有一种方法可以按字母排序,然后按以下数值排序

a1
a2
a11
a12
b1

1 个答案:

答案 0 :(得分:1)

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(string CHAR(3) NOT NULL);

INSERT INTO my_table VALUES
('a2'),('a11'),('a12'),('b1');

select * FROM my_table ORDER BY string;
+--------+
| string |
+--------+
| a11    |
| a12    |
| a2     |
| b1     |
+--------+

select * FROM my_table ORDER BY string+0;
+--------+
| string |
+--------+
| a2     |
| a11    |
| a12    |
| b1     |
+--------+

现在认真考虑将数据标准化。