gpt4 book ai didi

mysql - 将唯一 PRNG 插入 Db 列

转载 作者:行者123 更新时间:2023-11-30 23:34:07 25 4
gpt4 key购买 nike

是否可以在表中的每个现有记录旁边插入一个唯一的伪随机数?

类似于:

UPDATE Products P1
SET RandomId = Random()
WHERE NOT EXISTS (
SELECT Id
FROM Products P2
WHERE RandomId = [The same random as above]
)

(是的,我知道这只会跳过冲突,而不是解决它们)

我知道我可以通过代码甚至在多行语句中迭代地执行此操作 - 但是否有一个命令可以为我执行此操作?

注意:这个问题是为了我自己的启发,所以 Microsoft SQL Server 和 MySQL 的回答都很感激。谢谢。

最佳答案

切勿对此类操作使用随机数。您需要使用序列号。如果你使用随机,你期望像彩票一样随机:)

如果你想使用独特的随机数,你需要做这样的事情:

select @max := max( RandomId ) from Products;
update Products set RandomId = @max := @max + Rand() + 1;
  • 1 用于确保 Rand 不会返回零。

或者你可以创建一个可能不会以 3 倍宇宙年龄结束的循环:)

关于mysql - 将唯一 PRNG 插入 Db 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021127/

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