wan*_*mer 96 mysql insert-into
正如标题所说,我试图插入一个表中,从另一个表中选择值和一些默认值.
INSERT INTO def (catid, title, page, publish)
(SELECT catid, title from abc),'page','yes')
INSERT INTO def (catid, title, page, publish)
VALUES
((SELECT catid, title from abc),'page','yes'))
Run Code Online (Sandbox Code Playgroud)
第一个查询给出了mysql错误,第二个查询给出了列数不匹配.
我需要做什么?
Nic*_*can 231
你只需要这样做:
INSERT INTO def (catid, title, page, publish)
SELECT catid, title, 'page','yes' from `abc`
Run Code Online (Sandbox Code Playgroud)
小智 8
如果要插入所有列
insert into def select * from abc;
Run Code Online (Sandbox Code Playgroud)
这里def中的列数应该等于abc.
如果你想插入列的子集然后
insert into def (col1,col2, col3 ) select scol1,scol2,scol3 from abc;
Run Code Online (Sandbox Code Playgroud)
如果你想插入一些硬编码值
insert into def (col1, col2,col3) select 'hardcoded value',scol2, scol3 from abc;
Run Code Online (Sandbox Code Playgroud)
INSERT INTO def (field_1, field_2, field3)
VALUES
('$field_1', (SELECT id_user from user_table where name = 'jhon'), '$field3')
Run Code Online (Sandbox Code Playgroud)
小智 7
如果要复制源表的子集,可以执行以下操作:
INSERT INTO def (field_1, field_2, field3)
SELECT other_field_1, other_field_2, other_field_3 from `abc`
Run Code Online (Sandbox Code Playgroud)
或者将源表中的所有字段复制到目标表,您可以更简单地执行以下操作:
INSERT INTO def
SELECT * from `abc`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184954 次 |
| 最近记录: |