需要一个INSERT ... SELECT语句,但我也想手动设置一些字段

时间:2011-03-11 19:02:30

标签: php mysql pdo insert-select

我需要一个插件语句,大致会这样做:

INSERT INTO
    tblContent(postTitle, postBody, postAuthor, postDate, postApproved, fromSite)
     SELECT tblSubmissions.body
            WHERE tblSubmissions.submissionId = 1

但是我需要手动提供其余的字段。这可能吗?或者我需要插入一次,然后更新?如果我需要插入,然后更新,我知道我可能会使用PDO :: lastInsertId,但有人可以提供一个明确的例子吗?

2 个答案:

答案 0 :(得分:4)

有可能:只需将您知道的值注入select子句; - )

例如,你可以这样:

insert into your_table (field1, field2, field3)
select 'my_value', field_from_select, 152
from your_other_table
where ...

此处,'my_value'152是我之前知道的值 - 而field_from_select是来自select的动态字段。

答案 1 :(得分:0)

INSERT INTO tblContent(postTitle, postBody, postAuthor, postDate, postApproved, fromSite)
SELECT 'title',tblSubmissions.body,'author',..... 
WHERE tblSubmissions.submissionId = 1