我有一个脚本,它运行 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”。