如何通过“再向后一行”查询mysqli选项?

时间:2013-05-31 07:39:58

标签: mysql

我们有一个名为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

1 个答案:

答案 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