1

让我们有一个名为 的表weights,其中有我的体重条目,如下所示:

id | time       | weight
1  | 1328140800 | 140
2  | 1328400000 | 142
3  | 1328659200 | 141
4  | 1329004800 | 144
5  | 1329044800 | 148

time在 unixtime 中,条目是随机时间的。我可以每小时输入我的体重,或者我可以每个月输入我的体重。

现在,我想在某个时间范围内回显我的体重图表,但为此,我还需要在该时间范围之前再增加一个体重。

例子:

我要求我的体重在哪里:

`time` >= 1328659200 AND `time` <= 1329044800

此查询将返回以下行:

3  | 1328659200 | 141
4  | 1329004800 | 144
5  | 1329044800 | 148

对于这些,我需要在它们之前再添加一行。那将是这样的:

2  | 1328400000 | 142

我怎样才能做到这一点?

假设我的查询是:

SELECT *
FROM `weights`
WHERE `time` >= 1328659200 AND `time` <= 1329044800
4

1 回答 1

1

我认为您需要使用UNION查询并将第二次查询的结果限制为按时间 DESC 排序的 1 个,这应该将您以前的条目添加到您的结果中

SELECT *
FROM `weights`
WHERE `time` >= 1328659200 AND `time` <= 1329044800
UNION
SELECT *
FROM `weights`
WHERE `time` < 1328659200
ORDER BY `time` DESC
LIMIT 1
于 2013-05-31T07:44:37.067 回答