Mysql ORDER BY子句如何对从1开始而不是从0开始的记录进行排序

Mysql ORDER BY子句如何对从1开始而不是从0开始的记录进行排序,mysql,sql,sorting,sql-order-by,Mysql,Sql,Sorting,Sql Order By,在按类别的典型顺序中,如果列只有数值。那么,如何进行查询,使结果将数字从1排序到无穷大,剩余的零和负数最终出现呢 我有这张桌子:一号桌 col1 | col2 0 | Zero 5 | Five -2 | NA 1 | One 2 | Two 7 | NA 如果我通过此查询: SELECT * FROM TABLEONE ORDER BY col1; 行按此顺序排序 -2, 0, 1, 2, 5, 7 我想要的是: 1, 2, 5, 7, 0, -2, -

在按类别的典型顺序中,如果列只有数值。那么,如何进行查询,使结果将数字从1排序到无穷大,剩余的零和负数最终出现呢

我有这张桌子:一号桌

col1 | col2
0    | Zero
5    | Five
-2   | NA
1    | One
2    | Two
7    | NA
如果我通过此查询:

SELECT * FROM TABLEONE ORDER BY col1;
行按此顺序排序

-2, 0, 1, 2, 5, 7
我想要的是:

1, 2, 5, 7, 0, -2, -4 ... etc..

是否可以更改现有查询以获得该结果。谢谢。

您可以使用以下选项:

SELECT  *
FROM    T
ORDER BY SIGN(Col1) DESC, ABS(Col1);

您可以使用以下选项:

SELECT  *
FROM    T
ORDER BY SIGN(Col1) DESC, ABS(Col1);

聪明!零是一个特例,以
0
作为符号。现在,这是这个问题的完美答案。我刚刚检查了小提琴,它的工作方式和我找它的方式完全一样。谢谢GarethDClever!零是一个特例,以
0
作为符号。现在,这是这个问题的完美答案。我刚刚检查了小提琴,它的工作方式和我找它的方式完全一样。谢谢GarethD