【问题标题】:Update one field with value from another field in a table where the field values themselves are keys使用表中另一个字段的值更新一个字段,其中字段值本身就是键
【发布时间】:2013-03-03 08:53:13
【问题描述】:

我正在尝试将这个 select 语句变成一个 UPDATE 语句:

SELECT a.option_value, b.option_value
FROM mydb.wp_options a
JOIN mydb.wp_options b 
WHERE a.option_name = "siteurl"
AND b.option_name = "home"

我只想要 a.option_value = b.option_value

我怀疑这将通过基于连接的子查询来完成。结构是这样的:

col names: option_id, option_name, option_value
values:  1, siteurl, "http://dev.domain.com/"
values:  2, home, "http://www.domain.com"

所以我想将 option_name = "siteurl" option_value = "dev.domain.com" 字段替换为 option_name = "home" 中的值及其对应的 option_value="http://www 中的值所引用的另一个域字段.domain.com”。

所以它看起来像:

col names: option_id, option_name, option_value
values:  1, siteurl, "http://www.domain.com"
values:  2, home, "http://www.domain.com"

【问题讨论】:

    标签: mysql wordpress join


    【解决方案1】:

    您可以使用多表更新语法非常简单地实现这一点:

    UPDATE mydb.wp_options a, mydb.wp_options b 
    SET    a.option_value = b.option_value
    WHERE  a.option_name  = "siteurl"
       AND b.option_name  = "home"
    

    或者,使用子查询(不需要连接):

    UPDATE mydb.wp_options
    SET    option_value = (
      SELECT option_value
      FROM   mydb.wp_options
      WHERE  option_name = "home"
    )
    WHERE  option_name  = "siteurl"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      相关资源
      最近更新 更多