7

通常,排序是通过排序到顶部的符号来完成的,比如0or*&。这是mysql排序的默认方式;数字和符号,然后是 AZ。然而,这使得通常最丑陋或格式最差的结果浮到顶部(例如@#$@3423or8 inch或的结果&amp)。

所以我想做一个修改的形式,首先是字母AZ,最后是特殊字符。

我将如何去创建那种类型?条款中有什么ORDER BY

4

3 回答 3

8

基于此页面的 google 缓存链接: http ://www.google.com/url?sa=t&source=web&cd=3&ved=0CCUQFjAC&url=http%3A%2F%2Fblog.feedmarker.com%2F2006%2F02%2F01 %2Fhow-to-do-do-natural-alpha-numeric-sort-in-mysql%2F&ei=Zg2_TZyKDaffiALjjqwo&usg=AFQjCNGS-rX7AmfrumXK8J7bVSj96bSSmQ

编辑:原始链接已失效。这是另一个链接,它实际上比第一个链接更好地解释了正在发生的事情:

http://matthewturland.com/2008/11/05/natural-ordering-in-mysql/

你可以试试这个

SELECT names FROM your_table ORDER BY names + 0 ASC
于 2011-05-02T20:02:47.800 回答
6
Select ...
From ...
Order By Case When Col Like '[0-9]%' Then 1 Else 0 End Asc
    , Col

另一种解决特殊字符的解决方案:

Select ...
From ...
Order By Case When Col Like '[A-Z]%' Then 0 Else 1 End Asc
    , Col
于 2011-05-02T20:01:07.143 回答
0

这对我有用:

SELECT * FROM `yourTable` ORDER BY `yourDatabase`.`yourColumn`  ASC
于 2013-01-22T17:17:24.220 回答