简体   繁体   English

MYSQL-如果当前值为零,如何获取上一行的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM