使用MYSQL创build一个随机数
我想知道是否有一种方法来select100到500之间的随机生成的数字以及select查询。
例如: SELECT name, address, random_number FROM users
我不必在db中存储这个数字,只能用它来显示目的。
我试过这样的东西,但它不能工作..
SELECT name, address, FLOOR(RAND() * 500) AS random_number FROM users
希望有人帮助我。 谢谢
这应该给你想要的:
FLOOR(RAND() * 401) + 100
一般来说, FLOOR(RAND() * (<max> - <min> + 1)) + <min>
生成<min
>和<max>
之间的数字。
更新
这个完整的陈述应该工作:
SELECT name, address, FLOOR(RAND() * 401) + 100 AS `random_number` FROM users
由于RAND
产生的数字为0 <= v <1.0(请参阅文档 ),您需要使用ROUND
来确保您可以获得上限(本例中为500)和下限(本例中为100)
所以要产生你需要的范围:
SELECT name, address, ROUND(100.0 + 400.0 * RAND()) AS random_number FROM users
你可以使用FLOOR(RAND() * n) as randnum
(n是一个整数)来创build一个随机数,但是如果你不需要重复相同的随机数,那么你将不得不稍微存储一个临时表。 所以你可以检查它与where randnum not in (select * from temptable)
…
除了这个答案,创build一个像
CREATE FUNCTION myrandom( pmin INTEGER, pmax INTEGER ) RETURNS INTEGER(11) DETERMINISTIC NO SQL SQL SECURITY DEFINER BEGIN RETURN floor(pmin+RAND()*(pmax-pmin)); END;
并打电话
SELECT myrandom(100,300);
这给你100和300之间的随机数
这是find从i
到j
整数的正确公式,其中i <= R <= j
FLOOR(min+RAND()*(max-min))