小编kam*_*uel的帖子

将列设置为从另一个表中随机选择的值

考虑一下:

UPDATE dest
SET dest_col = (SELECT s.src_col FROM source s
                WHERE s.name = 'abc'
                ORDER BY random() LIMIT 1 OFFSET 0);
Run Code Online (Sandbox Code Playgroud)

我的目标:将每一行设置dest.dest_col为从子查询匹配的所有值中随机选取的值。

为了实现这一点,我添加了ORDER BY random() LIMIT 1. 但这是通过选择一个随机值一次,然后将其设置到dest.dest_col.

我尝试添加OFFSET 0(在其他答案中建议作为防止 Postgres 优化子查询的方法),但这似乎没有任何效果。

另请注意,我需要它才能在 GCP 上运行的 PostgreSQL 上工作。

postgresql google-cloud-sql

4
推荐指数
1
解决办法
6592
查看次数

标签 统计

google-cloud-sql ×1

postgresql ×1