1

この構造のテーブルがあります

table: WP_ICL_TRANSLATIONS
translation_id | element_type | element_id | trid | language_code | source_language_code
18               post_page      15           14     en              Null
427              post_page      1228         14     zh-hans         en
20               post_page      17           15     en              Null
166              post_page      228          15     zh-hans         en

そして、このような別のテーブル:

table: WP_POSTMETA
ID   | post_content
15     english content... 
1228   chinese content... 
17     english content... 
228    chinese content... 

私がする必要があるのはpost_content、英語のフィールドを中国語のコンテンツで更新することです。投稿のリレーションは、フィールドを使用して最初のテーブルに保存されますtrid

したがって、WP_POSTMETA で ID 15 のレコードを更新する場合は、WP_ICL_TRANSLATIONSテーブルに移動して同じ ID を検索し、trid その ID を取得する必要があります。その ID でWP_POSTMETAテーブルを更新できます。

私が今持っているのは、英語のIDに対応する中国語のIDを取得することです:

select element_id from wp_icl_translations where trid=(select trid from wp_icl_translations where element_id=779) and element_id<>779;

しかし、IDを手動で入力する必要があります。

その更新を行うクエリは可能ですか? 多分テンポラルテーブルを使用していますか?

4

1 に答える 1

1
UPDATE WP_POSTMETA p1, WP_POSTMETA p2
     , WP_ICL_TRANSLATIONS t1, WP_ICL_TRANSLATIONS t2
   SET p1.post_content = p2.post_content
 WHERE t1.trid = t2.trid
   AND t1.element_id = p1.ID
   AND t2.element_id = p2.ID
   AND t1.language_code = 'en'
   AND t2.language_code = 'zh-hans'
于 2013-06-07T09:11:49.937 に答える