2013-08-06 44 views
3

我有一个包含关于我的帖子的所有信息的表'posts'。 我想为所有类型为'public'的帖子插入一个新行到不同的表中。 我想运行一个查询,会是这个样子:Mysql Foreach循环语法

$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)

回答

9

你不需要循环。你可以在一个查询中做到这一点

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

谢谢!像魅力一样工作! – user2306941