Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在相同表名的Insert查询中使用select查询_Mysql - Fatal编程技术网

Mysql 在相同表名的Insert查询中使用select查询

Mysql 在相同表名的Insert查询中使用select查询,mysql,Mysql,是否可以在“插入”查询中使用“选择”查询,但条件是我希望对“选择”和“插入”查询使用相同的表名。例如mysql>插入示例元素(名称、位置、所有者)值('Namespace1', 从示例元素中选择id,其中name='Namespace1',0) 请指导我。将插入内容更改为如下所示: insert into sample_elements (name,position,ownerel) select 'Namespace1',id,0 from sample_elements where name

是否可以在“插入”查询中使用“选择”查询,但条件是我希望对“选择”和“插入”查询使用相同的表名。
例如
mysql>插入示例元素(名称、位置、所有者)值('Namespace1',
从示例元素中选择id,其中name='Namespace1',0)


请指导我。将插入内容更改为如下所示:

insert into sample_elements (name,position,ownerel) select 'Namespace1',id,0 from sample_elements where name='Namespace1';

基本上,不使用值,只使用select语句并将harcoded值作为列插入,我认为您可以这样做。您可以使用:

INSERT INTO table (..fields) SELECT ..fields.. FROM table;

我不知道mysql,但是你能试试下面的吗

insert into sample_elements select name, id, 0 from sample_elements where name='Namespace1'

我不确定。我认为在select中插入查找已经存在,或者出于什么目的


谢谢

这里是另一种可以使用的格式,使用“SET”结构。对于我的大多数SQL,我更喜欢这种格式,因为字段名与值成对出现,这使得维护比完全依赖于定位的字段/值列表容易得多

INSERT INTO sample_elements SET
name = 'Namespace1',
position = (SELECT id FROM sample_elements WHERE name='Namespace1'),
ownere1 = 0;

-1此解决方案不适用于MySQL,OP显然正在使用MySQL。看看这个答案:它确实在mySQL上工作,这就是我使用它的地方。请澄清它在哪里/如何工作,因为我认为您会发现问题出在您的实现/版本/驱动程序上,而不是mySQL。regardsI已经指定了,请检查我链接的答案。请说明您至少尝试过的MySQL数据库的版本。您链接到的答案与我的答案和OP不适用于同一场景。与您链接到的答案无关。我只是指出,有一种不同的语法允许您将字段与值配对。但正如您所要求的那样,请参见-或5.6或5.7。“集合”是语法中定义良好的一部分。对不起,你似乎不知道你的答案有什么问题。如果没有一两个技巧(如我链接的答案中所解释的),就不能将查询中的子查询中的表x引用到表x。我的-1将保留,我会让第三个人来决定你是否正确,无论什么时候出现这样的人。