2013-10-04 41 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

您将需要每个SELECT独立FROMWHERE条款,但它可能与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