Php MYSQL记录获取2个日期
目前,我要求如果当天的时间在中午之前,则应仅取当天上一天的项目_2值。对其他人来说,这需要他们正确的价值观Php MYSQL记录获取2个日期,php,mysql,Php,Mysql,目前,我要求如果当天的时间在中午之前,则应仅取当天上一天的项目_2值。对其他人来说,这需要他们正确的价值观 id | item_1 | item_2 | date 1 205 3 2015-04-07 2 215 35 2015-04-06 3 225 15 2015-04-05 4 235 315
id | item_1 | item_2 | date
1 205 3 2015-04-07
2 215 35 2015-04-06
3 225 15 2015-04-05
4 235 315 2015-04-04
预计结果是中午之前
id | item_1 | item_2 | sum | date
1 205 35 240 2015-04-07
2 215 35 250 2015-04-06
3 225 15 240 2015-04-05
4 235 31 266 2015-04-04
预计结果是中午之后
id | item_1 | item_2 | sum | date
1 205 3 208 2015-04-07
2 215 35 250 2015-04-06
3 225 15 240 2015-04-05
4 235 31 266 2015-04-04
日期和时间可以从php中使用,以及如何在同一查询中管理上一个和当前日期记录。我尝试过使用子查询,但我认为也可以用其他方式来实现
提前感谢。在这种情况下,您必须在查询中使用case: 试试这个:
SET @time := 'BFNOON';
SET @date := '2015-04-07 00:00:00';
SELECT id, item_1, item_2, (item_1 + item_2) AS sum_item, dates FROM (
SELECT id, item_1,
(CASE
WHEN (@time = 'BFNOON' AND dates = @date) THEN
(
SELECT item_2 FROM records WHERE dates < @date ORDER BY dates DESC LIMIT 1
) ELSE
item_2
END ) item_2
, dates
FROM records ) records
注意:删除声明和
替换@time='BFNOON'以在中午之前或之后检查
和@date,以及今天的日期值
举个例子:对不起,下一个是中午之后。我编辑了这个问题。您想根据您中午的情况更新项目_2,还是只想SELECT@MySQLRockstar,现在只选择。谢谢回复,但我有一个用户的10万条记录。使用子查询将使它变得更重。此外,我可以使用子查询获取,但是我可以不使用子查询而执行相同的功能。我认为子查询仅在条件匹配时运行。在这种情况下,它将只运行一次当前日期的记录。如果我错了,请纠正我。是的,你是对的。它将只运行一次。但它仍将从数以百万计的记录中获取信息。无论如何,我更担心的是,如果我可以在一个查询中完成它,而不用使用子查询。