从字符串命令字是否有删除像-
或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
的是右后对方?
从字符串命令字是否有删除像-
或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
的是右后对方?
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
这工作的大部分,但现在的顺序是关闭的长度如此这般:'8.2-1,8.2-10,8.2-11,8.2-2,8.2-20,8.2-24,8.2-24-A, 8.2-3'等。 – Packy
啊,当然,我更新了我的答案。 –
我还没有使用它,但MySQL有一个使用正则表达式'REGEXP'功能。如果您需要使用此功能帮助你可以读到它[这里](http://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp)或类似的网站。 –