使用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))