MySQL遍历数据表是我们经常会遇到的问题,下面就为您详细介绍MySQL遍历数据表的方法,希望对您学习MySQL遍历数据表能有所帮助。
DELIMITER $$ USE `tns`$$ DROP PROCEDURE IF EXISTS `MakeFriends`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `MakeFriends`() BEGIN DECLARE v_adminId BIGINT(12); DECLARE v_currentUserID BIGINT(12); DECLARE v_ExistRela INT; DECLARE Done INT DEFAULT 0; DECLARE rs CURSOR FOR SELECT userId FROM hw_user; /* 异常处理 */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1; SET v_adminId = 1; /* 打开游标 */ OPEN rs; /* 逐个取出当前记录userId字段的值*/ FETCH NEXT FROM rs INTO v_currentUserID; /* 遍历数据表 */ REPEAT IF NOT Done THEN SELECT COUNT(*) FROM hw_relationship WHERE sourceId = v_currentUserID AND targetId = v_adminId INTO v_ExistRela; /*SELECT v_currentUserID;SELECT v_ExistRela;*/ IF v_currentUserID != v_adminId AND v_ExistRela = 0 THEN /* insert relation records*/ INSERT INTO hw_relationship(createTime, relationType, sourceId, targetId) VALUES (NOW(), 1, v_currentUserID, v_adminId); INSERT INTO hw_relationship(createTime, relationType, sourceId, targetId) VALUES (NOW(), 1, v_adminId, v_currentUserID); END IF; END IF; FETCH NEXT FROM rs INTO v_currentUserID; UNTIL Done END REPEAT; /* 关闭游标 */ CLOSE rs; END$$ DELIMITER ;