2012-09-18 73 views
0

其實我有一輛車表作爲CAR它有3個字段:特定的ID在第一

  • carId
  • carName
  • carPrice

車表有15條記錄,,我只是想在任何纔能有在記錄第一其餘5號記錄作爲DESCASC

我的主要目的是讓所有其他的記錄一開始就是DESCASC

我想我很清楚。

回答

3

可以使用CASE表達在ORDER BY條款是這樣的:

SELECT carId ,carName,carPrice 
FROM Car 
ORDER BY CASE WHEN carId = @th5thid THEN 0 ELSE 1 END, Carid 
+0

感謝的人!作品魅力! –

+0

@SamArulRaj,隨時歡迎您:) –

2

雖然@Mahmoud答案完美的作品,在order by一個case可以使人們難以對引擎優化查詢。你能避免這樣的:

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 | 
+-------+ 
+0

是的,它似乎也okey –