我有表:
posts:
编号 | 作者 | 内容
我需要用一个查询从这个表中选择所有条目,但是作者“demo”写的帖子必须在第一个。
我会使用 UNION 并使用预定义的值来 ORDER BY。选择 demo 1st 的所有帖子,然后选择不是 demo 的帖子
SELECT id, author, content, 1 AS special FROM posts WHERE author='demo'
UNION
SELECT id, author, content, 0 AS special FROM posts WHERE author<>'demo'
ORDER BY special DESC
SELECT * FROM posts
ORDER BY CASE
WHEN author = 'demo' THEN posts
END DESC
如果您想在这里向其他人订购另一个示例:
_______________________________________________________________________________
| |
| |
| SELECT * FROM post ORDER BY |
| CASE |
| WHEN author = 'demo' THEN post1 |
| WHEN author = 'sdvg' THEN id |
| END DESC |
| |
|_______________________________________________________________________________|
如果您首先希望作者字段,那么您必须编写
select author, id, content FROM posts ORDER BY author
否则
select * FROM posts order by author