mysql按1+排序,并在末尾附加0


mysql order by 1+ and append 0 to the end

我想知道如何按1+排序,然后按末尾为0的任何值排序。

SQL结构:

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

我想按show_titleseasonepisode(1+)排序,然后是任何episode值为0的剧集。

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

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

很简单的

SELECT 
......
ORDER BY show_title ASC, seasons ASC, (episode>0) DESC, episode ASC

edit在检查Marc B的

后将其清除

那么你完全按照你说的去做?

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

注意,在MySQL中,默认顺序是升序,所以我在查询中显式地放置了"DESC"(结束),使其按降序排列。

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

MySQL ORDER BY文档。

请尝试以下操作:

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