我想知道如何按1+排序,然后按末尾为0的任何值排序。
SQL结构:
id || show_title || season || episode || title || plot || runtime || airdate
我想按show_title
、season
、episode(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)