MySQL Multilevel父子SP和IN子句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL Multilevel父子SP和IN子句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1877字,纯文字阅读大概需要3分钟。
内容图文
![MySQL Multilevel父子SP和IN子句](/upload/InfoBanner/zyjiaocheng/892/185c27fb19974f1783a8b1eff150f77e.jpg)
我正在研究包含父子关系的表引用
我需要得到父母 – >儿童 – >儿童 – > ….
对于上表数据我想要的结果是
我已经看过SOF的一些代码,但是没有得到他们的工作方式,并且在我的脑海中尝试了一个非常简单的逻辑,但不幸的是它不能用于一个奇怪的原因
我已经为它编写了存储过程,但我遇到了IN CLAUSE的问题
DELIMITER $$
DROP PROCEDURE IF EXISTS `GetHierarchy3`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetHierarchy3`()
BEGIN
DECLARE idss VARCHAR(225);
SET @currentParentID := 999999;
SET @lastRowCount := 0;
## A ##
INSERT INTO referrals_copy SELECT * FROM referrals WHERE uid1 = @currentParentID;
SET @lastRowCount := ROW_COUNT();
## B ##
SELECT GROUP_CONCAT(uid2) INTO @idss FROM referrals WHERE uid1 = @currentParentID;
#SELECT @lastRowCount;
SELECT * FROM referrals_copy;
WHILE @lastRowCount > 0 DO
SELECT "here";
SELECT @idss;
## C ##
INSERT INTO referrals_copy SELECT uid1, uid2 FROM referrals
WHERE uid1 IN (@idss);
SET @lastRowCount := ROW_COUNT();
#set @ids := NULL;
SELECT @idss;
SELECT GROUP_CONCAT(uid2) FROM referrals WHERE uid1 IN (@idss);
SELECT @idss;
SET @lastRowCount := 0;
END WHILE;
-- return the final set now
SELECT
*
FROM referrals_copy;
END$$
CALL GetHierarchy3();
首先,我在第一个查询A中得到了我想要的主要父项的子项,工作正常
然后,将主要父级的子节点变为变量@idss查询B,正常工作
然后在循环中我在查询中使用变量idss来获取它的子查询C并将它们放在结果表中……这是有问题的部分
这里第一次迭代我在变量idss中有1111,2222,它应该导致在表中插入值{3333,4444} 1111的孩子,以及{5555} 2222的子节点,但它只将1111的子节点输入ie 3333,4444但不是5555
我试图将查询C中的变量替换为检查,并且它在值1111,2222’inin Claues`中工作正常
任何想法为什么IN子句不接受组concat中的逗号分隔值或修改此代码的任何想法
问候
解决方法:
试试这个FIND_IN_SET(uid1,@ idss)
您必须替换此查询部分
SELECT GROUP_CONCAT(uid2)FROM referments WHERE uid1 IN(@idss);
进入这个
SELECT GROUP_CONCAT(uid2)FROM referrals WHERE FIND_IN_SET(uid1,@ idss);
我希望它为你工作….
内容总结
以上是互联网集市为您收集整理的MySQL Multilevel父子SP和IN子句全部内容,希望文章能够帮你解决MySQL Multilevel父子SP和IN子句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。