下面是我从百科看到的定义:
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89...这个数列从第3项开始,每一项都等于前两项之和。
它的递推公式:
?...也就是说,知道了第一项和第二项的值,就可以递推出后面的所有项。
那怎么用 SQL 实现呢?我们先来看怎么做到不通过物理表就能生成连续的数值。...如果在 MySQL 8.0 之前,确实没有什么好的办法解决这个问题,在 MySQL 8.0 后,可以使用 CTE 递归来生成连续的数值。...在 SQL 里面,从当前行去读取前两行的数据不容易实现,但只读前一行就容易很多。因此,我们在数据集中增加一列,用于存储上一行的斐波那契数。
Talk is cheap....这个实现需要注意两点:
把需要取第 n - 2 行的数放到第 n - 1 行的另一个列里;
判断条件是 id < 2 而不是 id <= 2,因为 id = n - 1 。