我想知道有没有办法选择100到500之间随机生成的数字以及一个选择查询.
例如: SELECT name, address, random_number FROM users
我不必将此数字存储在db中,只能用于显示目的.
我试过这样的东西,但它无法开始工作..
SELECT name, address, FLOOR(RAND() * 500) AS random_number FROM users
Run Code Online (Sandbox Code Playgroud)
希望有人帮助我.谢谢
Ja͢*_*͢ck 144
这应该给你想要的:
FLOOR(RAND() * 401) + 100
Run Code Online (Sandbox Code Playgroud)
通常,FLOOR(RAND() * (<max> - <min> + 1)) + <min>
生成介于<min
>和<max>
包含之间的数字.
更新
这个完整的陈述应该有效:
SELECT name, address, FLOOR(RAND() * 401) + 100 AS `random_number`
FROM users
Run Code Online (Sandbox Code Playgroud)
Ed *_*eal 10
作为RAND
产生的数,0 <= V <1.0(参见文档)需要使用ROUND
,以确保可以(在这种情况下100)(在此情况下500)得到的上界和下界
所以要产生你需要的范围:
SELECT name, address, ROUND(100.0 + 400.0 * RAND()) AS random_number
FROM users
Run Code Online (Sandbox Code Playgroud)
小智 5
除了这个答案,创建一个函数
CREATE FUNCTION myrandom(
pmin INTEGER,
pmax INTEGER
)
RETURNS INTEGER(11)
DETERMINISTIC
NO SQL
SQL SECURITY DEFINER
BEGIN
RETURN floor(pmin+RAND()*(pmax-pmin));
END;
Run Code Online (Sandbox Code Playgroud)
并打电话给
SELECT myrandom(100,300);
这为您提供了 100 到 300 之间的随机数