假设有下面一张表:命名为 stu 好了,如下 id name goal 1 a 10 2 b 8 5 c 6 9 d 9 使用一段 sql 能够变成如下这个样子: id name goal next 1 a 10 8 2 b 8 6 5 c 6 9 9 d 9 null 不知道 v 友看懂了没有?就是想要用一段 sql 实现按 id 排序之后,把下一个记录的 goal 添加到上一个记录的 next 里面,也就是要按这种规则添加一列。 想了一晚上,唯一想到的就是用子查询这点思路了,但是还是想不通,,诚心求帮助。
SELECT t1.rowno1,t1.id,t1.name,t1.goal, t2.goal AS next FROM ( SELECT (@rowNO := @rowNo + 1) AS rowno1, a.* FROM (SELECT * FROM stu) a, (SELECT @rowNO := 0) b ) t1 LEFT JOIN ( SELECT (@rowNO2 := @rowNo2 +1)-1 AS rowno2, a.* FROM (SELECT * FROM stu) a, (SELECT @rowNO2 := 0) b ) t2 ON t1.rowno1 = t2.rowno2