2013-08-06 3 views
3

У меня есть стол «сообщения», в котором есть вся информация о моих сообщениях. Я хочу вставить новую строку в другую таблицу для всех сообщений типа «public». Я хочу, чтобы выполнить запрос, который будет выглядеть примерно так:Mysql Foreach Loop Синтаксис

$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 для этого, который я могу запустить в моем менеджере баз данных? (Администратор)

ответ

9

Вам не нужен цикл. Вы можете сделать это одним запросом

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

Спасибо! Работал как шарм! – user2306941