我有 1 个表主题。
我想以这种方式对行进行排序。
首先获取 pinned = 1
按 id ASC
排序的行
第二行是 pinned = 0
按 created_ts DESC
排序的行
代码:
SELECT topics
WHERE category_id = :i AND deleted = :d
ORDER BY pinned ASC, created_ts DESC
注意:我错误地切换了表格中的列(edited_by <=> edited_ts)
最佳答案
您应该能够使用 CASE
如果另一列满足特定条件,则仅按列排序:
SELECT id, title, ...
FROM topics
WHERE category_id = :i AND deleted = :d
ORDER BY pinned DESC, -- first 1 then 0
CASE WHEN pinned = 1 THEN id ELSE 0 END, -- ignore for pinned=0
created_ts DESC
关于mysql - SQL - 按 2 列排序 - 排序主题(先固定,然后按创建的时间戳),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28051845/