php随机生成数据库中不存在、不重复数字

php随机生成数据库中不存在、不重复数字,第1张

说下思路:

1 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?

先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算差集,去除这部分数字(array_diff),再shuffle,得到新的随机数。

我觉得,你完全可以建立一个序号表,比如,1-1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复。

2 有没有什么办法生成的时候先生成一位数的,一位数生成满了以后再生出两位数的,两位数满了然后再三位数的,以此类推?

先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止。

3 代码的执行效率希望能越高越好!

如果想要代码执行效率,最好尽量减少与数据库的交互。

sql  查询不重复的记录  可以使用 having  count group by 组合

先把不重复数据的id查询出来 通过count()计算 只有数目为1的才是不重复的数据

select b from table b where bid in(select aid from table a group by aname having count(aid) <2)

//其中 name重复的数据的列名

以上就是关于php随机生成数据库中不存在、不重复数字全部的内容,包括:php随机生成数据库中不存在、不重复数字、sql 两张表怎么查询不重复的记录、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9550705.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存