我想知道如何按1+排序,然後在末尾以0值排序。mysql order by 1+並追加0到末尾
SQL結構:
id || show_title || season || episode || title || plot || runtime || airdate
我想show_title
,season
,episode(1+)
那麼任何事件與其他後episode
0值訂購。
我想知道如何按1+排序,然後在末尾以0值排序。mysql order by 1+並追加0到末尾
SQL結構:
id || show_title || season || episode || title || plot || runtime || airdate
我想show_title
,season
,episode(1+)
那麼任何事件與其他後episode
0值訂購。
很簡單
SELECT
......
ORDER BY show_title ASC, seasons ASC, (episode>0) DESC, episode ASC
編輯檢查後清理這件事馬克·B的
作品像一個魅力謝謝你! – rackemup420 2012-02-21 01:24:54
SELECT ...
...
ORDER BY show_title, season, (episode = 0) DESC, episode
簡而言之,episode = 0
將評估爲布爾真/假。按DESC
排序可以使任何真正的結果(情節真的= 0)首先出現,然後以升序(默認)順序排序所有其他情節值。
捱打吧 - 這個比較清爽+有一個很好的解釋,雖然 – 2012-02-20 23:29:30
@MarcB,我認爲它應該是'(episode> 0)',這樣episode的= 0會緊隨其後。 – 2012-02-20 23:53:20
我沒有注意到@MGA - 我想我的回答畢竟是正確的! :) – 2012-02-20 23:58:25
然後當你說你做的正是..?在MySQL
SELECT ...
FROM ...
ORDER BY show_title, season, episode DESC
注意默認順序是升序,所以我明確提出了「DESC
」(結束)在查詢中,使其降序排列。
(是episode
含1+
或0
文本字段,或者是它的數字?)
嘗試以下:
SELECT ...
FROM tablename
ORDER BY show_title,season,if(episode=0,1,0)
與儘可能多的答案,所有的看起來像他們會的工作,並沒有「接受的答案」表示,他們是正確與否。如果不是,你可以轉儲一些示例數據,以及如何預測結果。 – DRapp 2012-02-21 00:39:18
對不起,我張貼後,進入工作一分鐘。現在答案已經通過:D – rackemup420 2012-02-21 01:25:48