0

实际上我有一个汽车表,因为CAR它有 3 个字段:

  • carId.
  • carName.
  • carPrice.

Car 表有 15 条记录,我只想将第 5 条记录放在第一个其余的记录中,以任何顺序作为DESC, ASC

我的主要目的是把carId所有其他的记录DESC一一ASC记录下来!

我想我对你很清楚。

4

2 回答 2

3

您可以在子句中使用如下CASE表达式:ORDER BY

SELECT carId ,carName,carPrice
FROM Car 
ORDER BY CASE WHEN carId = @th5thid THEN 0 ELSE 1 END, Carid
于 2012-09-18T11:29:45.643 回答
2

尽管@Mahmoud 的答案非常有效,但其中的 acase会使order by引擎难以优化查询。你可以像这样避免它:

select carid, carname, carprice
from car 
order by carid != 5, carid

在 mysql 中,比较将返回 0 或 1,因此无需将其包装在case语句中:

mysql> select 1 = 0;
+-------+
| 1 = 0 |
+-------+
|     0 |
+-------+

mysql> select 1 = 1;
+-------+
| 1 = 1 |
+-------+
|     1 |
+-------+
于 2012-09-18T12:02:38.100 回答