MySQL 和 phpMyAdmin - 将数据从一个数据库复制到另一个数据库?
MySQL and phpMyAdmin - copy data from one database to another?
这是我试过的 MySQL 代码:
"INSERT INTO wpcustom_productmeta.wpc_productmeta(brand,model,country,carrier)
VALUES (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='brand'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='model'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='country'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='carrier')";
我想将数据从单独的数据库插入 wpcustom_productmeta.wpc_productmeta
和 table wordpress.wp_postmeta
但我只想选择特定的列。
这是两个 table 的结构:
您需要使用 wp_postmeta
table 的自联接来获取与特定 post 相关的所有行。然后用这整个SELECT
的结果作为插入的数据
INSERT INTO wpcustom_productmeta.wpc_productmeta (brand, model, country, carrier)
SELECT DISTINCT m1.meta_value, m2.meta_value, m3.meta_value, m4.meta_value,
FROM wordpress.wp_postmeta AS m1
JOIN wordpress.wp_postmeta AS m2 ON m1.post_id = m2.post_id
JOIN wordpress.wp_postmeta AS m3 ON m1.post_id = m3.post_id
JOIN wordpress.wp_postmeta AS m4 ON m1.post_id = m4.post_id
WHERE m1.meta_key = 'brand'
AND m2.meta_key = 'model'
AND m3.meta_key = 'country'
AND m4.meta_key = 'carrier'
你的问题我还不是很清楚。
但您可以尝试从(我猜您在两个表中都有 product_id
列)开始:
INSERT INTO wpcustom_productmeta.wpc_productmeta(product_id,brand,model,country,carrier)
SELECT
product_id,
MAX(IF(meta_key='brand',meta_value,''),
MAX(IF(meta_key='model',meta_value,''),
MAX(IF(meta_key='country',meta_value,''),
MAX(IF(meta_key='carrier',meta_value,''),
FROM wordpress.wp_postmeta
GROUP BY product_id;
这是我试过的 MySQL 代码:
"INSERT INTO wpcustom_productmeta.wpc_productmeta(brand,model,country,carrier)
VALUES (SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='brand'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='model'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='country'),
(SELECT meta_value FROM wordpress.wp_postmeta WHERE meta_key='carrier')";
我想将数据从单独的数据库插入 wpcustom_productmeta.wpc_productmeta
和 table wordpress.wp_postmeta
但我只想选择特定的列。
这是两个 table 的结构:
您需要使用 wp_postmeta
table 的自联接来获取与特定 post 相关的所有行。然后用这整个SELECT
的结果作为插入的数据
INSERT INTO wpcustom_productmeta.wpc_productmeta (brand, model, country, carrier)
SELECT DISTINCT m1.meta_value, m2.meta_value, m3.meta_value, m4.meta_value,
FROM wordpress.wp_postmeta AS m1
JOIN wordpress.wp_postmeta AS m2 ON m1.post_id = m2.post_id
JOIN wordpress.wp_postmeta AS m3 ON m1.post_id = m3.post_id
JOIN wordpress.wp_postmeta AS m4 ON m1.post_id = m4.post_id
WHERE m1.meta_key = 'brand'
AND m2.meta_key = 'model'
AND m3.meta_key = 'country'
AND m4.meta_key = 'carrier'
你的问题我还不是很清楚。
但您可以尝试从(我猜您在两个表中都有 product_id
列)开始:
INSERT INTO wpcustom_productmeta.wpc_productmeta(product_id,brand,model,country,carrier)
SELECT
product_id,
MAX(IF(meta_key='brand',meta_value,''),
MAX(IF(meta_key='model',meta_value,''),
MAX(IF(meta_key='country',meta_value,''),
MAX(IF(meta_key='carrier',meta_value,''),
FROM wordpress.wp_postmeta
GROUP BY product_id;