Mysql Foreach循环语法

时间:2013-08-06 19:21:36

标签: mysql

我有一个表'帖子',其中包含有关我帖子的所有信息。 我想为所有类型为“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)

1 个答案:

答案 0 :(得分:10)

您不需要循环。您可以在一个查询中执行此操作

INSERT INTO new_posts (post_id, post_data)
SELECT post_id, 'hello'
FROM posts 
WHERE post_type = 'public'