我有一个表,后面是属性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-> teamRoundId 2,依此类推,直到63。
我的声明中缺少什么?
可以说,teamRoundId 59到63是由上面的声明所生成的。 2是手动添加的。
附加信息:有7(0至6)回合和9支球队,但并非所有球员都在此表中有条目
最佳答案
使用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();