我想知道如何按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