SELECT MAX 查询问题间隔

问题描述

我想获得过去 1 天的最高值,但查询不起作用。 (按日期格式化的日期/时间列)。 我要查询的数据在多个标头中。

SELECT sign,date,price,MAX(price) as maxp FROM table WHERE datetime >= NOW() - INTERVAL 1 DAY

我的完整查询;

$que = $conn->mysql_query("SELECT sign,MAX(price) as maxp FROM table WHERE date >= (NOW() - INTERVAL 1 DAY) group by sign,date"); 

$row = mysql_fetch_array($que); { 

?>

<?php
foreach ($que as $row) {
$newQuery = "UPDATE tableb SET `daymax`='".$row["maxp"]."' where `sign`='".$row["sign"]."' ";
mysqli_multi_query($conn,$newQuery)

?>

解决方法

如果您想要签名、日期明智的最高价格,您需要按签名、日期分组。试试这个。

SELECT sign,date,MAX(price) as maxp 
FROM table WHERE datetime >= NOW() - INTERVAL 1 DAY
group by sign,date
,

您可以在一个查询中完成这一切:

update tableb b join
       (selecct sign,MAX(price) as maxp 
        from table t
        where datetime >= NOW() - INTERVAL 1 DAY
        group by sign
       ) tt
       on b.sign = tt.sign
    set b.daymax = tt.maxp;

让数据库来工作!如果可以在数据库中进行循环,则没有理由在应用程序中进行循环。

请注意,now() 具有时间分量。您正在处理日期,因此您可能真的需要 curdate()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...