2013-10-04 7 views
2

Я пытаюсь вставить два данных каждых для каждого поля в таблице следующим образом:Как вставить несколько раз с помощью INSERT INTO?

INSERT INTO `wp_postmeta` (post_id, meta_key, meta_value) 
SELECT post_id, 'custom', custom 
SELECT post_id, '_custom', 'field_514e91e73640d' 
FROM `wp_temp` 
WHERE custom IS NOT NULL 

Однако, это не работает. Есть ли все-таки добиться этого в одном запросе в MySQL? Благодарю.

ответ

6
INSERT INTO `wp_postmeta` (post_id, meta_key, meta_value) 
SELECT post_id, 'custom', custom FROM `wp_temp` WHERE custom IS NOT NULL 
UNION ALL 
SELECT post_id, '_custom', 'field_514e91e73640d' FROM `wp_temp` WHERE custom IS NOT NULL 
0

Да с UNION ALL

INSERT INTO `wp_postmeta` (post_id, meta_key, meta_value) 
SELECT post_id, '_custom', 'field_514e91e73640d' 
FROM `wp_temp` 
WHERE custom IS NOT NULL 

UNION ALL 

SELECT post_id, 'custom', custom 
FROM `wp_temp` 
WHERE custom IS NOT NULL 
1

Вам потребуется отдельный FROM и WHERE положение с каждым SELECT, но это возможно с UNION или UNION ALL.

INSERT INTO `wp_postmeta` (post_id, meta_key, meta_value) 
SELECT post_id, 'custom', custom 
FROM `wp_temp` 
WHERE custom IS NOT NULL 
UNION 
SELECT post_id, '_custom', 'field_514e91e73640d' 
FROM `wp_temp` 
WHERE custom IS NOT NULL 
Смежные вопросы