【问题标题】:SQL Statement to UPDATE and REPLACE values更新和替换值的 SQL 语句
【发布时间】:2019-06-04 14:47:55
【问题描述】:

我在编写将更新和替换我的 Wordpress 数据库中所有值的 SQL 语句时遇到问题。我真的只是想在我的wp_130638636_usermeta 表内的meta_key 列中用wp_130638636_capabilities 替换wp_capabilities 的所有值。

请看下面的截图:

例如下面的行将改变一行:

更新wp_130638636_usermeta SET meta_key = 'wp_130638636_capabilities' 其中wp_130638636_usermeta.umeta_id = 6175;

但我只想将meta_key 的值(wp_capabilities)更改为wp_130638636_capabilities。如果meta_key 中的该值没有wp_capabilities,则该值不应更改。

这是否正确:

更新wp_130638636_usermeta SET meta_key = 'wp_130638636_capabilities' 其中meta_key = wp_130638636;

【问题讨论】:

  • 屏幕截图没有显示整个 SQL 语句。可以用纯文本复制吗?
  • 在上方添加了编辑
  • "...meta_key 没有 wp_capabilities..." - 你的意思是 meta_key 列是空的,是一个空字符串,还是不包含确切的文本“wp_capabilities” (或者可能是其中的一部分)?
  • 不,我只想将meta_key 中的值替换为wp_capabilities 中的wp_130638636_capabilities

标签: sql phpmyadmin


【解决方案1】:

我相信这是正确的说法。将 meta_key 等于 'wp_capabilities' 的列 meta_key 更新为新值 'wp_130638636_capabilities' 这不会更新任何空值。

UPDATE
  meta_key
SET
  meta_key = 'wp_130638636_capabilities'
WHERE
  meta_key = 'wp_capabilities';

【讨论】:

  • @a2b123 我同意。无论如何,如果这是一个生产数据库,请确保在运行此查询之前进行备份。安全总比后悔好。点赞。
【解决方案2】:
Update wp_130638636_usermeta Set meta_key =
    replace(meta_key, 'wp_capabilities', 'wp_130638636_capabilities')

试试这个,我刚试过,效果很好。

【讨论】:

    猜你喜欢
    • 2012-03-20
    • 2015-03-28
    • 2011-04-14
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多