我有一个表,其后是属性teamId和roundId,另一个表名为teamRoundId,用于连接这两个属性。我的目标是用一个名为teamRoundId
的属性替换teamId / roundId连接目前,teamRoundId属性填满了一些数字,因为我试图把它弄好。
我认为该陈述与我尝试的最接近:
drop procedure if exists j;
delimiter $$
CREATE PROCEDURE j()
BEGIN
DECLARE v INT DEFAULT 1;
DECLARE c INT DEFAULT 0;
DECLARE d INT DEFAULT 1;
WHILE v < 64 DO
UPDATE `ssshortagerule`
SET `teamRoundId` = v
Where teamId = d AND roundId = c;
IF c < 6 THEN
SET c = c + 1;
ELSE
SET c = 0 AND d = d + 1;
END IF;
SET v = v + 1;
END WHILE;
END $$
delimiter ;
call j();
所以teamId 1和roundId 0应该是teamRoundID 1, teamId 1,roundId 1 - &gt; teamRoundId 2等到63。 我的陈述中缺少什么?
要说的是,teamRoundId 59到63是由上面的声明生成的。 2手动添加。
附加信息:有7个(0到6个)轮次和9个球队,但并非所有球队都有本表中的条目
答案 0 :(得分:0)
使用SET命令在2个变量之间不能有AND语句:
drop procedure if exists j;
delimiter $$
CREATE PROCEDURE j()
BEGIN
DECLARE v INT DEFAULT 1;
DECLARE c INT DEFAULT 0;
DECLARE d INT DEFAULT 1;
WHILE v < 64 DO
UPDATE `ssshortagerule`
SET `teamRoundId` = v
Where teamId = d AND roundId = c;
IF c < 6 THEN
SET c = c + 1;
ELSE
SET c = 0;
SET d = d + 1;
END IF;
SET v = v + 1;
END WHILE;
END $$
delimiter ;
call j();