我想知道如何按1+排序,然后在最后输出0值。
SQL结构:
id || show_title || season || episode || title || plot || runtime || airdate
我希望按show_title
,season
,episode(1+)
订购,然后在episode
之后为{{1}}添加0值的剧集。
答案 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
的文字字段,还是数字?)
答案 3 :(得分:0)
尝试以下:
SELECT ...
FROM tablename
ORDER BY show_title,season,if(episode=0,1,0)