【发布时间】:2013-09-06 18:49:04
【问题描述】:
我有一个脚本,它运行 2 个几乎相同的相当慢的 SQL 查询。从数据库记录中选择应该在页面上“突出显示”的记录,即它们排在第一位。另一个从数据库中选择常规记录。每个查询大约需要 0.3 秒,由于两者同时运行,我在它们上损失了 0.6 秒。所以我想知道是否可以组合这些查询。以下是它们的样子:
SELECT * FROM records WHERE [other where conditions] AND featured>=$timestamp ORDER BY featured DESC
SELECT * FROM records WHERE [other where conditions] AND featured<$timestamp ORDER BY created DESC
我标记的 [其他条件] 在这两种情况下都是相同的。所以我基本上需要做的是:
SELECT * FROM records WHERE [other where conditions] ORDER BY featured DESC UNLESS featured < $timestamp, created DESC
除了我不知道如何告诉 MySQL“ORDER BY ... UNLESS”。
【问题讨论】: