我有一个查询,我想先输出所需的记录,然后再输出结果集的其余部分。
我有一个新闻项目列表,每个项目旁边都有一个“阅读更多”。
当用户单击“阅读更多”链接时,他们会被带到我想要他们选择的新闻项目的新闻页面(现在只说它的 id = 1)然后我希望其余的新闻项目在排序后输出按日期。
我到目前为止:
"SELECT * FROM news ORDER BY(id, 1), newsdate DESC"
我有一个查询,我想先输出所需的记录,然后再输出结果集的其余部分。
我有一个新闻项目列表,每个项目旁边都有一个“阅读更多”。
当用户单击“阅读更多”链接时,他们会被带到我想要他们选择的新闻项目的新闻页面(现在只说它的 id = 1)然后我希望其余的新闻项目在排序后输出按日期。
我到目前为止:
"SELECT * FROM news ORDER BY(id, 1), newsdate DESC"
您也许可以为此构建一些东西,但就我个人而言,我只会退回到两个查询;
SELECT * FROM news WHERE id=$id
进而;
SELECT * FROM news WHERE id<>$id ORDER BY newsdate DESC
如果您需要将单个结果集传递给您的视图,则可以将两者连接起来。
也许您只需要一个 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