0

CAR実際には、 3 つのフィールドがある car テーブルがあります。

  • carId.
  • carName.
  • carPrice.

Car テーブルには 15 のレコードがあります。最初に 5 番目のレコードを取得したいだけDESCですASC

私の主な目的はcarId、最初に他のすべてのレコードを1 つずつ、DESCまたはASC1 つずつ特定することです。

私はあなたにはっきりしていると思います。

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の回答は完全に機能しますが、acaseorder by使用すると、エンジンがクエリを最適化するのが難しくなる可能性があります。あなたはこのようにそれを避けることができます:

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

casemysqlでは、比較は0または1を返すため、ステートメントでラップする必要はありません。

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

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