gpt4 book ai didi

mysql - 使用随机唯一编号更新每一行中的一列

转载 作者:可可西里 更新时间:2023-11-01 06:49:27 25 4
gpt4 key购买 nike

我有一个大约 20k 行的小表。在该表中有一个名为 random_uid (INT NOT NULL) 的列。我想用一个随机的唯一数字更新所有 20k 行。

因为我的表很小,所以我认为我不需要使用字符串或 UUID,所以我选择了

SELECT FLOOR(RAND() * 100000000) AS random_num
FROM table1
WHERE "random_num" NOT IN (SELECT random_uid FROM table1)
LIMIT 1;

我的问题是我无法从同一个表中更新和选择,所以我在创建 UPDATE 查询时遇到了问题。

编辑:我对上述随机性没有问题,因为我没有将其用于任何安全目的,只是为不只是递增的每一行创建唯一 id。由于使用选择来验证另一行中不存在相同的数字,我无法使用 UPDATE,这就是问题所在。

最佳答案

对 200 万条记录进行了 100 次迭代测试。测试成功。

UPDATE IGNORE table1 SET random_uid = ( RAND( ) * ( SELECT countID
FROM (
SELECT MAX(random_uid) + COUNT(1) + 1 countID
FROM table1) AS t3)
) + (
SELECT maxID
FROM (SELECT MAX( random_uid ) maxID FROM table1) AS t)

关于mysql - 使用随机唯一编号更新每一行中的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46507940/

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