繁体   English   中英

如何在 SQL 中下一行 select?

[英]How to select the next row in SQL?

我在数据库中有表,例如:

id  id_tool   tool_last    tool next
1   1         2019-11-01   2020-11-01
2   2         2019-09-15   2020-09-15
3   1         2020-10-30   2021-10-30
4   1         2021-11-02   2022-11-02
5   2         2020-09-10   2021-09-10

如果 id_tool=1 和 plan=2020-11-01 然后 echo actual=2020-10-30 我想获取数据

我尝试使用此代码:

SELECT tool_last,
       (SELECT id,
               (SELECT id
                FROM t_tabel
                WHERE id_tool='1' AND tool_next='2020-11-01') AS idlast
        FROM t_tabel
        WHERE id > idlast
        ORDER BY id
        LIMIT 1) as idactual
FROM t_tabel
WHERE id = idactual
SELECT t1.*
FROM t_tabel t1
JOIN t_tabel t2 USING (id_tool)
WHERE id_tool = 1
  AND t2.tool_next='2020-11-01'
  AND t1.tool_last > t2.tool_last -- adjust if "next row" needs in another criteria
ORDER BY t1.tool_last LIMIT 1

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=fb9c3d8c490e4cf0043ae69a4bfe6131

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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