实际上我有一个汽车表,因为CAR
它有 3 个字段:
carId
.carName
.carPrice
.
Car 表有 15 条记录,我只想将第 5 条记录放在第一个其余的记录中,以任何顺序作为DESC
, ASC
。
我的主要目的是把carId
所有其他的记录DESC
一一ASC
记录下来!
我想我对你很清楚。
实际上我有一个汽车表,因为CAR
它有 3 个字段:
carId
.carName
.carPrice
.Car 表有 15 条记录,我只想将第 5 条记录放在第一个其余的记录中,以任何顺序作为DESC
, ASC
。
我的主要目的是把carId
所有其他的记录DESC
一一ASC
记录下来!
我想我对你很清楚。
您可以在子句中使用如下CASE
表达式:ORDER BY
SELECT carId ,carName,carPrice
FROM Car
ORDER BY CASE WHEN carId = @th5thid THEN 0 ELSE 1 END, Carid
尽管@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 |
+-------+