如何使用PHP在数据库中重复生成随机数? [英] How to Generate Random number without repeat in database using PHP?

查看:81
本文介绍了如何使用PHP在数据库中重复生成随机数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想生成一个5位数字,该数字在数据库内不重复. 假设我有一个名为 numbers_mst 的表,其字段名为 my_number .

I would like to generate a 5 digit number which do not repeat inside the database. Say I have a table named numbers_mst with field named my_number.

我想生成一个数字,使其不重复出现在此my_number字段中. 在此允许前面的零.因此,允许使用像00001这样的数字. 另一件事是,它应该在00001到99999之间.我该怎么办?

I want to generate the number the way that it do not repeat in this my_number field. And preceding zeros are allowed in this. So numbers like 00001 are allowed. Another thing is it should be between 00001 to 99999. How can I do that?

我可以在这里猜到的一件事是,我可能必须创建一个递归函数才能将数字检入表并生成.

One thing I can guess here is I may have to create a recursive function to check number into table and generate.

推荐答案

SELECT FLOOR(RAND() * 99999) AS random_num
FROM numbers_mst 
WHERE "random_num" NOT IN (SELECT my_number FROM numbers_mst)
LIMIT 1

这是做什么的

  1. 使用RAND()在0到1之间选择随机数.
  2. 将其放大为0到99999之间的数字.
  3. 仅选择表中不存在的那些.
  4. 仅返回1个结果.

这篇关于如何使用PHP在数据库中重复生成随机数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆