对 mySql 中的 varchar 列进行排序
Sort varchar column in mySql
我正在尝试对具有值的一列进行排序
FMOL1001,
FMOL1004,
FMOL1009,
FMOL10010,
FMOL1003,
FMOL10025
排序不正确,求助
示例数据:
id name
-------------
1 FMOL1001
2 FMOL1004
3 FMOL1009
4 FMOL10010
5 FMOL1003
6 FMOL10025
查询:
SELECT id, name
FROM table
ORDER BY LPAD(SUBSTR(name,5,LENGTH(name)-4),10,'0') ASC
输出:
id name
-------------
1 FMOL1001
5 FMOL1003
2 FMOL1004
3 FMOL1009
4 FMOL10010
6 FMOL10025
解释:
LPAD(SUBSTR(name,5,LENGTH(name)-4),10,'0')
将产生:
FMOL0000001001
FMOL0000001003
FMOL0000001004
FMOL0000001009
FMOL0000010010
FMOL0000010025
试试这个,但我不确定...
如果你创建了一个像这样的数字字符串 FMOLXXXX-->>XXX 那么你可以对 XXX:
进行排序
SELECT 列,SUBSTRING(第 5 列)从 table 按 CAST 排序(按 UNSIGNED 排序)
我正在尝试对具有值的一列进行排序
FMOL1001,
FMOL1004,
FMOL1009,
FMOL10010,
FMOL1003,
FMOL10025
排序不正确,求助
示例数据:
id name
-------------
1 FMOL1001
2 FMOL1004
3 FMOL1009
4 FMOL10010
5 FMOL1003
6 FMOL10025
查询:
SELECT id, name
FROM table
ORDER BY LPAD(SUBSTR(name,5,LENGTH(name)-4),10,'0') ASC
输出:
id name
-------------
1 FMOL1001
5 FMOL1003
2 FMOL1004
3 FMOL1009
4 FMOL10010
6 FMOL10025
解释:
LPAD(SUBSTR(name,5,LENGTH(name)-4),10,'0')
将产生:
FMOL0000001001
FMOL0000001003
FMOL0000001004
FMOL0000001009
FMOL0000010010
FMOL0000010025
试试这个,但我不确定... 如果你创建了一个像这样的数字字符串 FMOLXXXX-->>XXX 那么你可以对 XXX:
进行排序SELECT 列,SUBSTRING(第 5 列)从 table 按 CAST 排序(按 UNSIGNED 排序)