1

我想按数字值从 mysql 表中订购 desc 一些行。

如:SELECT * FROM table ORDER BY ABS(row1) DESC

表格格式:

身份证 | 类型 | 价值

1 | 2 | 42

2 | 1 | 52

3 | 2 | 67

4 | 2 | 50

5 | 1 | 15

6 | 1 | 27

7 | 3 | 48

8 | 3 | 23

我想得到以下结果 - 按值 DESC 排序,但首先显示类型为 2 和 DESC 的行,然后显示类型为 1,3,4 (...) 的行 DESC:

身份证 | 类型 | 价值

3 | 2 | 67

4 | 2 | 50

1 | 2 | 42

2 | 1 | 52

7 | 3 | 48

6 | 1 | 27

9 | 3 | 23

5 | 1 | 15

4

2 回答 2

0

您可以按两个或多个字段排序

SELECT * FROM table ORDER BY ABS(row1), row2, row3 DESC
于 2013-04-27T15:37:40.557 回答
0

这是order by你想要的:

order by `type` = 2 desc,
         value desc

表达式type = 2返回一个布尔值,当为真时相当于 1,当为假时相当于 0。您的示例没有负值,因此我认为不需要abs().

于 2013-04-27T22:05:13.347 回答