你们能告诉我这是否正确吗??我正在尝试将 firstname_1 的值插入 first_name。
INSERT INTO wp_usermeta(meta_value) where meta_key=first_name
select meta_value where meta_key=firstname_1
这是从数据库中查看的表(表名 = wp_usermeta
)
423 16 firstname_1 vrigu
424 16 lastname_2 de
425 16 gender_5 male
426 16 bankname_3 SBI
427 16 accountnumber_4 9456874526
429 17 nickname mithu123
430 17 first_name
431 17 last_name
最佳答案
如果你想插入一个新行,你使用这个:
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
SELECT user_id, 'first_name', meta_value
FROM wp_usermeta
WHERE meta_key = 'firstname_1'
如果要填充现有行,请使用 UPDATE
,而不是 INSERT
:
UPDATE wp_usermeta AS t1
JOIN wp_usermeta AS t2 ON t1.user_id = t2.user_id
SET t1.meta_value = t2.meta_value
WHERE t1.meta_key = 'first_name'
AND t2.meta_key = 'firstname_1'
如果您需要同时执行这两项操作——如果行已存在则更新该行,或者创建一个新行——您可以使用 INSERT
和 ON DUPLICATE KEY UPDATE
选项:
INSERT INTO wp_usermeta (user_id, meta_key, meta_value)
SELECT user_id, 'first_name', meta_value
FROM wp_usermeta
WHERE meta_key = 'firstname_1'
ON DUPLICATE KEY UPDATE meta_value = VALUES(meta_value);
这假设复合键上有一个唯一索引 (user_id, meta_key)
关于mysql - DBSQL 将列中一个实体的值插入到不同列中的另一个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753656/