假设我有一个表A (id string)
,我需要创建一个表B (id1 string, id2 string)
,以便从B.id2
中随机抽取A.id
。 B.id1
与A.id
相同。例如:
表A
:
id
1
2
3
4
表
B
:id1 id2
1 2
1 3
2 4
2 3
3 1
3 2
4 1
4 4
也就是说,对于
id
中的每个A
,随机采样id
中的2 A
作为新列id2
。如何使用SQL执行此操作?我希望样品不需更换。但是如果id2
等于id1
是可以的。感谢你们对我的帮助! 最佳答案
一种方法是:
select id as id1, (select id from A order by rand() limit 1) as id2 from A
union all
select id as id1, (select id from A order by rand() limit 1) as id2 from A
您可以使用
insert into ... select ...
将此值放入表B中。如果要使用2个以上的id,例如几十个,则此方法是错误的选择。
关于mysql - SQL:如何为每行随机采样多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44984446/