これは、特定のワードプレスではありませんが、それは私が働いているWPのDB ...一括更新MySQLのテーブルは
私はposts
テーブル値を更新する必要がありますということは注目に値しますpost_title
post_type='appearance'
のすべてのエントリについて現在のpost_title
は、希望する名前で始まりますが、 "appearance [some#]"で終わります。したがって、「外観」から最後までを削除する必要があり、テーブルpostmeta
のmeta_value
と置き換える必要があります。とpost_id
はposts
テーブルのID
と同じです。
たとえば、ID「102
」の投稿があり、「John Doe appearance 102」というタイトルがあります。 postmeta
テーブルでは、meta_key = _place_id
とpost_id = 102
,meta_value = 108
です。したがって、最終結果はpost_title = John Doe 108
になります。
これは私以外は複雑ですが、参加が必要だと思います。そして、私は2つの別々のクエリが理にかなっていると考えます。だから、のようなもの:あなたはSUBSTRING_INDEX()
を使用することにより、単一のクエリでこれを行うことができます
UPDATE posts
SET post_title = TRIM(TRAILING ' appearance %' FROM post_title)
WHERE post_type='appearance'
と
UPDATE posts
left join postmeta on
posts.ID= postmeta.post_id
set
posts.post_title = CONCAT(posts.post_title, " ", postmeta.meta_value WHERE postmeta.meta_key = '_place_id')
それは素晴らしいですね。悲しいことに、エラーが発生しました: 'ネイティブ関数 'SUBSTRING_INDEX'への呼び出しでパラメータのカウントが正しくありません。 – David
@David申し訳ありませんが、入力ミスが修正されました。 –
ありがとうございます。綺麗な。行方不明だったがうまくいたことの1つは、post_typeを指定することでした。 – David