Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL记录获取2个日期_Php_Mysql - Fatal编程技术网

Php MYSQL记录获取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

目前,我要求如果当天的时间在中午之前,则应仅取当天上一天的项目_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     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万条记录。使用子查询将使它变得更重。此外,我可以使用子查询获取,但是我可以不使用子查询而执行相同的功能。我认为子查询仅在条件匹配时运行。在这种情况下,它将只运行一次当前日期的记录。如果我错了,请纠正我。是的,你是对的。它将只运行一次。但它仍将从数以百万计的记录中获取信息。无论如何,我更担心的是,如果我可以在一个查询中完成它,而不用使用子查询。