
说下思路:
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 两张表怎么查询不重复的记录、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)