gpt4 book ai didi

SQLite - 使用随机唯一值更新

转载 作者:行者123 更新时间:2023-12-03 17:49:53 25 4
gpt4 key购买 nike

我试图用从 0 到行计数的随机值填充列中的每一行。到目前为止我有这个

UPDATE table
SET column = ABS (RANDOM() % (SELECT COUNT(id) FROM table))

这完成了工作但产生了重复的值,结果证明这是错误的。我添加了一个 Unique 约束,但这只会导致它崩溃。

有没有办法用特定范围内的随机唯一值更新列?

谢谢!

最佳答案

如果以后想随机读取记录,此时只需要排序即可:

SELECT * FROM MyTable ORDER BY random()

(如果您需要在多个查询中使用相同的订单,这将不起作用。)


否则,您可以使用临时表来存储表的 rowid 和数字 1..N 之间的随机映射。(这些数字由临时表的 rowid 自动生成。)

CREATE TEMP TABLE MyOrder AS
SELECT rowid AS original_rowid
FROM MyTable
ORDER BY random();
UPDATE MyTable
SET MyColumn = (SELECT rowid
FROM MyOrder
WHERE original_rowid = MyTable.rowid) - 1;
DROP TABLE MyOrder;

关于SQLite - 使用随机唯一值更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895716/

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