gpt4 book ai didi

mysql - 使用随机数更新表行失败

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:42 25 4
gpt4 key购买 nike

我在存储过程中使用 while 循环来更新表的每一行,但所有行的更新值保持不变。例如,在我的表中,所有行的生成数字都是 2266,而不是唯一数字.

我的存储过程是这样的

DELIMITER ;;
CREATE PROCEDURE lesrows()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DECLARE lesrand INT DEFAULT 0;
SELECT COUNT(*) FROM students INTO n;
select(FLOOR(2000 + RAND() * (3000 - 2000) )) into lesrand;
SET i=0;
WHILE i<n DO
UPDATE students set student_number= lesrand;
SET i = i + 1;
END WHILE;
End;
;;

call lesrows();

为什么要为所有行插入一个常量数字而不是为每一行插入一个唯一数字?

最佳答案

while 语句在每次迭代时设置整个表的 student_number 的 lesrand。您希望每次迭代(在循环内)都有一个新的随机数,并且您希望使用 WHERE 和变量 i 一个接一个地选择学生

是这样的:

SET i=0;
WHILE i<n DO
select(FLOOR(2000 + RAND() * (3000 - 2000) )) into lesrand;
UPDATE students set student_number= lesrand WHERE student_ID = i;
SET i = i + 1;
END WHILE;

关于mysql - 使用随机数更新表行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17919366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com