mysql怎么生成不重复的随机数

mysql怎么生成不重复的随机数,第1张

MySql数据库随机函授Rand()可以产生0~1之间带小数的随机数,只要将括号中的参数留空,所产生的数是完全随机的,出现重复的几率不大,但是不可避免会有重复的可能,如果需要完全避免重复,可以先用随机函数产生一堆数字,然后用剔除其中的重复数这个办法来实现。

例如先用循环产生一批随机数并存入数据表中,再用

select distinct colName from tableName

选出无重复的随机数予以应用

mysql的rand函数可以生成一个0到1之间的随机数,进行一定的放大即可得到一个随机数。再通过条件查询来限制新随机数没有在表中出现过。如下所示:

SELECT FLOOR(RAND() * 99999) AS random_numFROM numbers

WHERE "random_num" NOT IN (SELECT my_number FROM numbers)

LIMIT 1

从1到1000范围内随机一个数字mt_rand(1,1000)

查询下这个数字 在这个表中的aid存不存在

用while去判断下

$aidarr = array()

while (count($aidarr )<3)

{

$randnum = mt_rand(1,1000)

$sql = "select count(aid) from dede_addonproducts where aid=$randnum"

$aid = $db->query($sql)

if ($aid == 1)

{

$aidarr[] = $randnum

}

}

这时候$aidarr还是数组不是字符串

然后用for 导入一下

for ($i=0$i<count($aidarr)$i++)

{

$str = implode(",",$aidarr[$i])

}

这样$str就是一个字符串


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/425318.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-26
下一篇2023-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存