mysql按1+排序,并将0追加到最后

时间:2012-02-20 23:24:40

标签: php mysql

我想知道如何按1+排序,然后在最后输出0值。

SQL结构:

id || show_title || season || episode || title || plot || runtime || airdate

我希望按show_titleseasonepisode(1+)订购,然后在episode之后为{{1}}添加0值的剧集。

4 个答案:

答案 0 :(得分:4)

SELECT ...
...
ORDER BY show_title, season, (episode = 0) DESC, episode

简而言之,episode = 0将评估为布尔值true / false。按DESC排序会使任何真实结果(剧集确实= 0)先出现,然后按升序(默认)顺序按所有其他剧集值排序。

答案 1 :(得分:2)

非常简单

SELECT 
......
ORDER BY show_title ASC, seasons ASC, (episode>0) DESC, episode ASC
检查Marc B的

后,

编辑清理了这个

答案 2 :(得分:0)

然后你就像你说的那样......?

SELECT ...
FROM ...
ORDER BY show_title, season, episode DESC

请注意,在MySQL中,默认顺序是升序,因此我明确地将“DESC”(结尾)放在查询中以使其降序。

episode是一个包含1+0的文字字段,还是数字?)

MySQL ORDER BY docs

答案 3 :(得分:0)

尝试以下:

 SELECT ...
 FROM tablename
 ORDER BY  show_title,season,if(episode=0,1,0)