可滚动游标在MySQL 8.0

  • 本文关键字:MySQL 滚动 游标 mysql
  • 更新时间 :
  • 英文 :


我们需要将当前行/记录与上一行和下一行的值进行比较。

光标在MySQL中是不可滚动的。因此,我们使用while循环迭代表数据,使用limit子句获取上一条/下一条记录并比较值。

对于20k条记录,此逻辑将花费大量时间。谁能建议并给出例子来迭代表数据,比较当前记录值与前一个和下一个记录。

谢谢,维拉

可以使用表JOIN来完成此操作。如果没有可用的ID列,则需要添加另一个具有排名顺序的列,然后向其添加索引。这里有关于如何添加rank列的答案。

但是,让我们假设你的ID列是足够的:没有空格,正确的顺序:

SELECT main.*, prev.*, next.* FROM
mytable as main
left join prev on main.ID = prev.ID+1
left join next on main.ID = next.ID-1

然后可以在比较main的基础上向查询添加逻辑或条件。上一列。

最新更新