使用-
排序时,有没有办法删除a
或ORDER BY
等字符?我问,因为我正在使用order by LENGTH(name), name
这让我接近但不对劲。输出如下:
8.2-11
8.2-12
8.2-13
8.2-14
8.2-13-A
我明白这一点因为8.2-13-A比8.2-13长,所以最后会是这样。我可以忽略所有特殊字符和字符,这样两个8.2-13
就会一个接一个吗?
答案 0 :(得分:0)
SELECT Value, SUBSTRING_INDEX(Value, '.', 1) as R1, SUBSTRING_INDEX(SUBSTRING_INDEX(`Value`, '.', -1), '-', 1) as r2, if(concat('',(SUBSTRING_INDEX(Value, '-', -1)) * 1) =0, SUBSTRING_INDEX(SUBSTRING_INDEX(`Value`, '-', -2), '-', 1), SUBSTRING_INDEX(Value, '-', -1)) as r3, if(concat('',(SUBSTRING_INDEX(Value, '-', -1)) * 1) = 0, SUBSTRING_INDEX(Value, '-', -1), '') as r4 FROM Table1 Order by lpad(r1,2,0), lpad(r2,2,0), lpad(r3,2,0), r4