CAR
実際には、 3 つのフィールドがある car テーブルがあります。
carId
.carName
.carPrice
.
Car テーブルには 15 のレコードがあります。最初に 5 番目のレコードを取得したいだけDESC
ですASC
。
私の主な目的はcarId
、最初に他のすべてのレコードを1 つずつ、DESC
またはASC
1 つずつ特定することです。
私はあなたにはっきりしていると思います。
CAR
実際には、 3 つのフィールドがある car テーブルがあります。
carId
.carName
.carPrice
.Car テーブルには 15 のレコードがあります。最初に 5 番目のレコードを取得したいだけDESC
ですASC
。
私の主な目的はcarId
、最初に他のすべてのレコードを1 つずつ、DESC
またはASC
1 つずつ特定することです。
私はあなたにはっきりしていると思います。
次のような句で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
case
mysqlでは、比較は0または1を返すため、ステートメントでラップする必要はありません。
mysql> select 1 = 0;
+-------+
| 1 = 0 |
+-------+
| 0 |
+-------+
mysql> select 1 = 1;
+-------+
| 1 = 1 |
+-------+
| 1 |
+-------+