【问题标题】:How to copy meta_value of wp_usermeta to the same table however different meta_key?如何将 wp_usermeta 的 meta_value 复制到同一张表,但是 meta_key 不同?
【发布时间】:2021-07-08 12:47:20
【问题描述】:

我正在尝试将名字复制到显示名称。我创建了一个临时表调用 wp_tmp_usermeta。并加入了。但是,没有行受到影响。干嘛呢?

错误消息:0 行受影响。 (查询耗时 0.0213 秒。)

UPDATE
    `wp_usermeta`
JOIN (SELECT `meta_value`,`user_id` FROM `wp_tmp_usermeta` WHERE `wp_tmp_usermeta`.`meta_key` = 'first_name') newtable ON newtable.`user_id` = `wp_usermeta`.`user_id`
SET
    `wp_usermeta`.meta_value = newtable.meta_value
WHERE
    `wp_usermeta`.meta_key = 'nickname'  ;

期望的结果是将 first_name 的值复制到昵称

【问题讨论】:

    标签: sql wordpress copy


    【解决方案1】:

    如果您想复制(即真正复制行)名字但作为昵称键入,则不需要临时表,也不需要 UPDATE。你想要一个INSERT ... SELECT

    INSERT INTO wp_usermeta
                (meta_key,
                 meta_value,
                 user_id)
                SELECT 'nickname',
                       meta_value,
                       user_id
                       FROM wp_usermeta
                       WHERE meta_key = 'first_name';
    

    【讨论】:

    • 用户ID呢?会同步吗?
    • @SapienElva:我将答案编辑为在user_id 中也有一列。这就是为什么您应该始终提供minimal reproducible example,即CREATE 语句所涉及的表或其他对象(粘贴文本,不要使用图像,不要链接到外部站点),INSERT 示例数据语句 (dito) 以及所需的结果表格文本格式的样本数据。如果你发了minimal reproducible example,我就不会那么容易错过了。
    • 谢谢!有用!好的,请注意最小可重现示例
    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2017-10-03
    相关资源
    最近更新 更多