我就是用mysql 编写存储过程。
目标是获得顶层的id。
表结构是:
pid name id简单的表数据如下:pid name id1 a 22 b 33 c 44 d 5 5 e 6
. . .. . .. . .799 aa 800
800 ab 801就是现在我随意输入一个pid 为3 那么我找到它的最顶层pid 就是 1.我输入的pid 为799 ,那么它的最下级就是800.
现在我想写出存储过程, 就是随意输入pid 分别获得他的升级和下级,这个应该怎么写。
为什么我写的就是报错了呢。
是mysql的数据库。
DELIMITER $$;
CREATE PROCEDURE test(IN sid INT,OUT xid INT)
BEGIN
DECLARE i INT;
SET i=(SELECT id FROM admin WHERE id=sid);
WHILE i > 0
DO
SET i=(SELECT id FROM admin WHERE id=i);
END WHILE;
SELECT i INTO xid;
END $$
DELIMITER ;
拜求了!
目标是获得顶层的id。
表结构是:
pid name id简单的表数据如下:pid name id1 a 22 b 33 c 44 d 5 5 e 6
. . .. . .. . .799 aa 800
800 ab 801就是现在我随意输入一个pid 为3 那么我找到它的最顶层pid 就是 1.我输入的pid 为799 ,那么它的最下级就是800.
现在我想写出存储过程, 就是随意输入pid 分别获得他的升级和下级,这个应该怎么写。
为什么我写的就是报错了呢。
是mysql的数据库。
DELIMITER $$;
CREATE PROCEDURE test(IN sid INT,OUT xid INT)
BEGIN
DECLARE i INT;
SET i=(SELECT id FROM admin WHERE id=sid);
WHILE i > 0
DO
SET i=(SELECT id FROM admin WHERE id=i);
END WHILE;
SELECT i INTO xid;
END $$
DELIMITER ;
拜求了!
解决方案 »
- 一对多查询
- mysql中my.ini文件反斜杠问题
- 依然是Result consisted of more than one row,我要哭了
- 复制字段到另一个表!
- mysql插入一条新记录时的问题
- 我的数据库文件里面缺少MYI和MYD文件怎么办?
- MySQL远程访问速度为什么慢(使用MyODBC)?
- 在mysql中为什么插入,删除,更新都不行,而只有检索可以?
- 签到签离表的设计
- 导入SP时候Locate报collations错误
- union合并查询多次引用同一个表,求大神优化
- 在线等。。。mysql文件执行不成功,但文件里面的语句应该没有问题,因为把sql文件中的内容在查询中能够执行,这是咋回事啊
--------------- 这里看起来是死循环
上经顶级通常是唯一的,子级未级通常是有好多的(这种情况网上的盗汗最多,建议直接搜索)上级顶级的话,r看你的结构,应该是取 SELECT pid