2

次のように、テーブルの各フィールドにそれぞれ 2 つのデータを挿入しようとしています。

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の1つのクエリでこれを達成する方法はありますか? ありがとう。

4

3 に答える 3

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
于 2013-10-04T13:55:15.093 に答える
1

FROMそれぞれで個別のandWHERE節が必要になりますが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
于 2013-10-04T13:56:33.240 に答える
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
于 2013-10-04T13:55:43.363 に答える