gpt4 book ai didi

Mysql:如何正确生成当前一组数字上不存在的唯一10位随机数

转载 作者:行者123 更新时间:2023-11-29 20:33:13 25 4
gpt4 key购买 nike

我有这个查询:

select t1.newval from 
(select LPAD(FLOOR(10000000000*RAND()), 10, '0') as 'newval') as t1
where t1.newval not in (select unqiue_no from table)

注意:查询工作正常,但测试并不广泛,因为我的数据有限且长度为 10 位数字。

我不确定此查询是否永远不会与现有数字发生冲突。由于此查询不循环。

如果newval数字与现有的uqnique数字冲突,是否有可能返回空值?

预先感谢您的见解。

编辑以格式化mysql

最佳答案

当然有机会。

最初,这种机会极低:百亿分之一。每分配一个 key ,几率就会增加,但发生冲突的几率仍然极低......百亿分之一 - (之前分配的数字的数量)。

无论如何,总会有机会的,因为这就是您设计查询的方式——要求它针对分配的 id 表进行查询,以防万一。

我在这里假设,你需要的是一把 key 。如果是这种情况,您最好生成该数字并尝试插入(假设您使用该数字作为主键)并从重复键违规中进行恢复,而不是针对不断增加的数据集进行选择分配的键。

更紧迫的问题不是您是否会得到一个空结果集,而是查询的速度,这需要查询现有键的表,并且当它变大时,查询会以可预测的方式减慢查询速度方式。由于您已经认为这是一个概率非常低的事件,因此我看不到该子查询中的值(value)。

关于Mysql:如何正确生成当前一组数字上不存在的唯一10位随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38929027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com