我对MySQL的查询很熟悉,但我有一个棘手的问题,我不知道该怎么做。有没有办法告诉系统“任何匹配的X条件第一,否则顺序正常。”例如,在一个表中posts
与领域(post_id, author_id, timestamp)
我知道该怎么办......通过单个匹配对MySQL查询进行排序,然后通常是
mysql_query("SELECT * FROM posts ORDER BY timestamp");
但是,有没有办法让某个用户的帖子(比如,author_id = 5
)在结果顶部显示,然后在那之后按时间戳排序?要清楚:我不想按author_id
排序,我只想分离author_id
为5的帖子,然后按timestamp
排序。
有没有办法做到这一点?我试过了,
mysql_query("SELECT * FROM posts ORDER BY author_id = 5, timestamp");
......但它似乎没有工作。
它似乎正在工作,除了它将匹配的行('author_id = 5'行)放在结果的底部而不是顶部。 “FIELD()”后面的一个'DESC'运行得非常好。谢谢! – Nerrolken