1

我有一个查询,我想先输出所需的记录,然后再输出结果集的其余部分。

我有一个新闻项目列表,每个项目旁边都有一个“阅读更多”。

当用户单击“阅读更多”链接时,他们会被带到我想要他们选择的新闻项目的新闻页面(现在只说它的 id = 1)然后我希望其余的新闻项目在排序后输出按日期。

我到目前为止:

"SELECT * FROM news ORDER BY(id, 1), newsdate DESC"
4

2 回答 2

0

您也许可以为此构建一些东西,但就我个人而言,我只会退回到两个查询;

SELECT * FROM news WHERE id=$id

进而;

SELECT * FROM news WHERE id<>$id ORDER BY newsdate DESC

如果您需要将单个结果集传递给您的视图,则可以将两者连接起来。

于 2012-11-07T11:45:09.230 回答
0

也许您只需要一个 UNION 查询:

SELECT * FROM news WHERE id=1
UNION (SELECT * FROM news WHERE id<>1 ORDER BY newsdate DESC)

确保在 ( ) 之间包含第二个查询。

或者你也可以使用这样的技巧:

SELECT * FROM news ORDER BY id=1 DESC, newsdate DESC
于 2012-11-07T11:59:39.423 回答