[英]MYSQL - how to get previous row value if current value is zero
I have a table called value_record like below 我有一个名为value_record的表,如下所示
id | record_id | value | serverTime
1 | 20 | 0 | 2016-04-19 04:51:16
2 | 20 | 0 | 2016-04-19 04:40:19
3 | 20 | 0 | 2016-04-19 04:27:34
4 | 20 | 70 | 2016-04-19 04:14:24
5 | 20 | 50 | 2016-04-19 04:02:21
.. ..
select value from value_record
where record_id in(20)
order by serverTime desc limit 1;
output : 输出:
0
but expected output is: 但预期输出为:
70
it means if current value is zero then query go back previous row where not zero and display the non zero value. 这意味着如果当前值为零,则查询返回上一行(不为零)并显示非零值。
How to achieve this in mysql? 如何在mysql中实现呢?
You need to filter values different than 0 and you don't need IN
clause: 您需要过滤不同于0的值,并且不需要IN
子句:
SELECT
`value`
FROM
value_record
WHERE
record_id = 20
AND `value` > 0
ORDER BY
serverTime DESC
LIMIT 1;
SELECT value
FROM value_record
WHERE record_id IN(20)
AND value > 0
ORDER BY serverTime LIMIT 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.