我有诸如 M1 M3 M4 M14 M30 M40
等字符串(实际上是字母后的任何 2-3 位整数)
当我执行“ORDER BY name”时,返回:
M1、M14、M3、M30、M4、M40
当我想要的时候:
M1、M3、M4、M14、M30、M40
它将整个事物视为一个字符串,但我想将其视为字符串 + int
有什么想法吗?
最佳答案
您可以在 ORDER BY: 中使用 SUBSTR 和 CAST AS UNSIGNED/SIGNED:
SELECT * FROM table_name ORDER BY
SUBSTR(col_name FROM 1 FOR 1),
CAST(SUBSTR(col_name FROM 2) AS UNSIGNED)
关于MySQL 按带数字的字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097368/