作为查询,每次执行都会返回不同的值:
SELECT FLOOR(200000000000 + (RAND() * 100000000000))
编写一个功能相同的函数(从存储过程中调用):
DROP FUNCTION if exists setRandomNumber//
CREATE FUNCTION setRandomNumber()
RETURNS INT
BEGIN
DECLARE rand INT DEFAULT 0;
SELECT FLOOR(200000000000 + (RAND() * 100000000000)) INTO rand;
RETURN rand;
END//
总是产生相同的数字:
SELECT setRandomNumber();
产量:
setRandomNumber() 2147483647
setRandomNumber() 2147483647
setRandomNumber() 2147483647
setRandomNumber() 2147483647
等等。
这是一个错误吗?如何在函数或存储过程中迭代设置多个随机数?