我有一个表'帖子',其中包含有关我帖子的所有信息。 我想为所有类型为“public”的帖子在一个不同的表中插入一个新行。 我想运行一个看起来像这样的查询:
$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语法是什么? (Adminer)
答案 0 :(得分:10)
您不需要循环。您可以在一个查询中执行此操作
INSERT INTO new_posts (post_id, post_data)
SELECT post_id, 'hello'
FROM posts
WHERE post_type = 'public'