1

この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"
4

1 に答える 1

4

これは、複数テーブルの更新構文を使用して非常に簡単に実現できます。

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"
于 2013-03-14T19:55:43.127 に答える