SQL使用带有字母数字数据的数字排序对列(varchar(255))进行排序

时间:2018-02-09 07:10:43

标签: mysql sql sorting

我使用的是SQL服务器(MySQL Ver 14.14 Distrib 5.7.21,适用于Linux(x86_64))。我想对这样的数据进行排序。

DocTyp-2649
DocTyp-2650
DocTyp-2651
DocTyp-2652
DocTyp-26036
DocTyp-26037
DocTyp-26038

我的查询是

SELECT doc_unique_id FROM docs ORDER BY doc_unique_id ASC

我的结果是

DocTyp-26036
DocTyp-26037
DocTyp-26038
DocTyp-2649
DocTyp-2650
DocTyp-2651
DocTyp-2652
你能做什么?

4 个答案:

答案 0 :(得分:1)

尝试此查询

SELECT doc_unique_id 
FROM docs 
ORDER BY cast(replace(doc_unique_id, 'DocTyp-', '') as int)

答案 1 :(得分:1)

您可以使用$('#myText').change(function(e) { alert("Value changed"); -- code for saving } }); 函数(SQL Server)显式排序数据以获取数值数据

substring()

答案 2 :(得分:1)

试试这个:

<html> <body> <div class="main-menu"> </div> <div class="left-menu"></div> </body> </html>

答案 3 :(得分:0)

ORDER BY长度(doc_unique_id),doc_unique_id ASC