2012-08-07 78 views
0

我試圖在我的MySQL數據庫上使用REPLACE運行UPDATE如何運行依賴於另一個查詢的值的UPDATE查詢?

我有一個包含四個字段一個WordPress數據庫表(wp_postmeta):post_idmeta_idmeta_keymeta_value

我想REPLACE北球所有實例巨蟹只有如果該職位(即該行的post_id)也有一個排在meta_key是屬meta_valueCorydoras

例如,

post_id  meta_id  meta_key meta_value 
4   14   breeding Some stuff here about breeding denticulata 
2   15   breeding Some stuff here about breeding denticulata 
4   16   genus  Corydoras 
2   17   genus  Apistogramma 

只有具備的14meta_id行實際上應該有改變,作爲具有2post_id行從Corydoras屬不。

這可能嗎?我不知道從哪裏開始。

由於提前,

回答

0
UPDATE 
    wp_postmeta AS upd 
    JOIN 
    wp_postmeta AS chk 
     ON chk.post_id = upd.post_id 
SET 
    upd.meta_value = REPLACE(upd.meta_value, 'denticulata', 'heteropoda') 
WHERE 
     chk.meta_key = 'genus' 
    AND chk.meta_value = 'Corydoras' 
    AND upd.meta_key = 'breeding' ;   -- not sure if you need this line 

小心,這也將更新'denticulatas''heteropodas'(和任何其他的話,包括字符串denticulata),並且REPLACE()是大小寫敏感的,所以Denticulata不會被取代。

相關問題