MYSQL:从另一个表中插入一个值,同时定期填充其他列

MYSQL:从另一个表中插入一个值,同时定期填充其他列,mysql,insert,distinct,Mysql,Insert,Distinct,假设我们有一张桌子(1): id | col1 | col2 id | col3 和另一个表(2): id | col1 | col2 id | col3 任务是将所有col3不同的值插入col1,同时用随机整数值填充col2,这里有两个解决方案 这将使用子查询返回col2的不同值 INSERT INTO table1 (id, col1, col2) SELECT NULL, col2, FLOOR(RAND()*(1000))+1 FROM ( SELECT DISTIN

假设我们有一张桌子(1):

id | col1 | col2
id | col3 
和另一个表(2)

id | col1 | col2
id | col3 

任务是将所有
col3
不同的值插入
col1
,同时用随机整数值填充
col2
,这里有两个解决方案

这将使用子查询返回col2的不同值

INSERT INTO table1 (id, col1, col2)
SELECT NULL, col2, FLOOR(RAND()*(1000))+1
FROM
(
    SELECT DISTINCT col2
    FROM table2
)
下面的代码滥用GROUPBY子句,只为col2的不同值生成行。虽然这在MySQL的默认安装上应该是可以的,但根据为您的安装设置的选项,它可能不起作用,并且在其他SQL版本中也可能不起作用

INSERT INTO table1 (id, col1, col2)
SELECT NULL, col2, FLOOR(RAND()*(1000))+1
FROM table2
GROUP BY col2