Mysql 从列表中插入

Mysql 从列表中插入,mysql,Mysql,是否可以从mysql中的值列表中插入 INSERT INTO changes(uid,typ) SELECT owner,(SELECT * FROM(20,30,40)) lst FROM info 换句话说,你能让一个值列表像子查询的结果一样吗?实际上,你试图做的是在语法和语义上都不正确:)你试图从一个select返回3行,并将它们放入只接受一个值(1列x 1行)的外部select 此外,MySQL无法知道每个数字对应于哪个用户,对吗?然后,如果您有办法将内部select中的用户链接到外部

是否可以从mysql中的值列表中插入

INSERT INTO changes(uid,typ)
SELECT owner,(SELECT * FROM(20,30,40)) lst
FROM info

换句话说,你能让一个值列表像子查询的结果一样吗?

实际上,你试图做的是在语法和语义上都不正确:)你试图从一个select返回3行,并将它们放入只接受一个值(1列x 1行)的外部select

此外,MySQL无法知道每个数字对应于哪个用户,对吗?然后,如果您有办法将内部select中的用户链接到外部select,那么您将有两个表,并将它们连接起来

现在,如果你真的想把每个所有者加入到每个数字中,那么你正在寻找一个笛卡尔产品。你可以这样做:

select owner from info, (select 20 union select 30 union select 40) t2
这样,我们将创建一个包含3条记录的虚拟表,并将这些记录中的每一条链接到所有者,这将导致:

owner1 | 20
owner1 | 30
owner1 | 40
owner2 | 20
owner2 | 30
owner2 | 40
owner3 | 20

等等。是否清楚?

您希望在更改表中的列类型中写入什么内容?第一条记录是20,第二条记录是30,第三条记录是40?@Filype:是的,这就是我想要的。你能给信息表添加另一列吗?@Filype:然后我必须先将列表插入信息表,我可以使用UNION,只是想知道是否有更好的方法是的,我想笛卡尔乘积就是我想要的。我已经有了和你类似的解决方案,如果没有更好的解决方案,我会接受你的回答,谢谢