3

我有一个表“帖子”,其中包含有关我的帖子的所有信息。我想为所有“公共”类型的帖子在不同的表中插入一个新行。我想运行一个看起来像这样的查询:

$ids = (SELECT post_id FROM posts WHERE post_type = 'public')    
foreach($id in $ids){
    INSERT INTO new_posts (post_id, post_data) VALUES ($id, 'hello');
}

我知道我可以在一个 sql 语句中插入多行,但是我需要为每一个更改 post_id 并且我手动更改的太多了。

我可以在我的数据库管理器中运行的正确 mysql 语法是什么?(管理员)

4

1 回答 1

11

你不需要循环。您可以在一个查询中完成

INSERT INTO new_posts (post_id, post_data)
SELECT post_id, 'hello'
FROM posts 
WHERE post_type = 'public'
于 2013-08-06T19:23:28.283 回答