作为查询,每次执行都会返回不同的值:
SELECT FLOOR(200000000000 + (RAND() * 100000000000))
Run Code Online (Sandbox Code Playgroud)
编写一个执行相同操作的函数(从存储过程调用):
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//
Run Code Online (Sandbox Code Playgroud)
始终产生相同的数字:
SELECT setRandomNumber();
Run Code Online (Sandbox Code Playgroud)
收益率:
setRandomNumber()2147483647
setRandomNumber()2147483647
setRandomNumber()2147483647
setRandomNumber()2147483647
等等.
这是一个错误吗?如何在函数或存储过程中迭代设置多个随机数?