2013-03-14 64 views
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 =“家”的价值和referrenced其相应的option_value =“http://www.domain.com”。

所以它会再看看这样的:

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" 

否则,使用子查询(没有加入要求):

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

回答

2

你可以很简单地用多表更新语法实现这一目标:

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