按asc / desc排序SQL

时间:2017-02-02 13:12:40

标签: mysql sorting

如何在asc or desc order中的sql中对数据进行排序?

我正在使用:

ORDER BY DESC

但我的数据不符合规定。我的代码的数据如下:

AC1, AC2 ,AC3 ..., AC30,AC31

sql按照第一个字母而不是数据的值对数据进行排序,这样我的数据就像这样排序

AC10, AC11, AC12, AC13 ... AC19

接下来将是:

AC20, AC21, AC22, AC23

我希望我的数据从第一个数字(AC1,AC2,AC3...)开始,而不是(AC1,AC10,AC11)

1 个答案:

答案 0 :(得分:5)

order by正常运作。你的期望是错误的。字符串按字母顺序排序。

您可以轻松获得所需内容。假设列以两个字母开头,您可以这样做:

order by char_length(col) desc, col desc

如果您希望默认排序起作用,则只需填充数字。 。 。 AC01AC02等等。