我们有一个名为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
答案 0 :(得分:1)
我认为您需要使用UNION
查询并将第二次查询的结果限制为按时间DESC排序,这应该将您之前的条目添加到结果中
SELECT *
FROM `weights`
WHERE `time` >= 1328659200 AND `time` <= 1329044800
UNION
SELECT *
FROM `weights`
WHERE `time` < 1328659200
ORDER BY `time` DESC
LIMIT 1