2013-03-14 70 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"