gpt4 book ai didi

php - 用最后一个有效值替换零 Mysql

转载 作者:行者123 更新时间:2023-11-29 00:24:24 24 4
gpt4 key购买 nike

我正在使用 mysql 来存储我家的 Kwh 使用情况。我很少出错,并得到一个 0 值来存储。当我从我的表中提取值时,我不想得到那个 0,而是之前的最后一个有效值。

SELECT unix_timestamp(dataora) as time, kwhg 
FROM misure
WHERE dataora BETWEEN '2013-10-08 00:00:00.000' AND '$data_scelta 23:59:59.997'
GROUP BY date(dataora),hour(dataora)

我用上面的代码得到了下表:

+-------+-----------+
| time | kwhg |
+-------+-----------+
| 9 | 2 |
| 10 | 3 |
| 11 | 0 |
| 12 | 4 |
| 13 | 0 |
+-------+-----------+`

我要获取

+--------+----------+
| time | kwhg |
+-------+-----------+
| 9 | 2 |
| 10 | 3 |
| 11 | 3 |
| 12 | 4 |
| 13 | 4 |
+-------+-----------+`

并删除具有先前值的零。有什么技巧可以做到吗?

最佳答案

您可以使用 MySQL 用户定义的变量返回当前行的 kwhg 值(如果它大于零),或者返回上一行定义的变量。

SELECT unix_timestamp(dataora) as time, @kwhg := IF(kwhg>0, kwhg, @kwhg) AS kwhg 
FROM misure
WHERE dataora BETWEEN '2013-10-08 00:00:00.000' AND '$data_scelta 23:59:59.997'
GROUP BY date(dataora),hour(dataora)

与@OddEssay 的回答一样,如果第一个条目为零,则无法得出非零值。在这种情况下,它将返回 @kwhg 的当前值,除非您之前在当前 session 中运行过查询,否则它可能为 NULL。

关于php - 用最后一个有效值替换零 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com