PHP从不重复随机数

Joe*_*aca 0 php mysql random numbers

我需要为我的网站上的每个用户创建一个完全随机的数字,并将其插入MySQL数据库.这些数字永远不会重复,我不想使用MySQL AutoIncrement,因为我需要一个特定的范围.从说111,111999,999,999,999.现在没有更高或更低.我确实有这个范围的具体原因,因为你想知道.我知道我可以unique在MySQL上使用该功能,但这只能阻止我插入重复项.我想要有两个函数,一个用于生成数字,另一个用于检查是否使用了该数字.他们会一直循环,直到找到一个未使用的数字.我知道这是多么低效,以及一旦这些数字大部分被采取可能需要多长时间,这就是为什么我来到这里,以获得更好的答案.你有什么建议,因为我完全没有想法.谢谢你的帮助!

Nie*_*sol 6

你知道你可以:

ALTER TABLE `mytable` AUTO_INCREMENT=111111
Run Code Online (Sandbox Code Playgroud)

对?

无论如何,如果你仍然倾向于随机性,它可能对SELECT所有现有值最有效,将它们加载到PHP数组中,然后进行PHP调用,rand(111111,999999999999)直到得到一个不是的数字in_array.

注意:除非是64位版本,否则PHP无法处理999,999,999,999,因为该数字对于32位来说太高了.