【发布时间】:2020-08-13 13:38:41
【问题描述】:
我使用 MariaDB 并且有一个表格,其中每一行都有一个日期和一个分数。
我想首先显示日期为 3 天或更晚的行,按分数排序 - 然后显示其余(超过 3 天)按日期排序。
由于我的日期以 unix 时间存储,因此很容易让 php 从现在开始计算 3 天,并将其用作下面的 $scoreTimeLimit 变量:
这是我的两个查询:
SELECT * FROM myTable WHERE myDate > $scoreTimeLimit ORDER BY myPopularityScore DESC
SELECT * FROM myTable WHERE myDate < $scoreTimeLimit ORDER BY myDate DESC
但是,我非常希望只有 1 个查询而不是两个。能做到吗……?
【问题讨论】:
-
UNION也许?还是只用CASE查询您的ORDER BY?
标签: php mysql database mariadb