WordPressサイト(wp_postmetaテーブル)に投稿のメタデータを更新したいと考えています。 既知のgood'ol関数update_post_meta()
がジョブを実行しているかどうかを確認し、存在しない場合は追加します。 しかし、この関数は一度に1つの投稿のみを処理できます。 私は高価なdbコールを保存し、異なるpost idのために1つのクエリでいくつかのフィールドを更新したいと思います。複数のpost_metaデータを1つのmySQLクエリで更新する
一般に、私はswichするCASE
でMySQL UPDATE
クエリを使用して割り当てることができ、各meta_value
in this example等post_id
に従って、及びテーブル内の異なる行のいくつかの値を更新します。 しかし、投稿の中にはmeta_key
がまだ存在しないので、INSERT
が必要であり、更新されていない可能性があります。まあ、update_post_meta()
を使用しない場合、私は何とかこれをチェックする必要があります。 INSERT .... ON DUPLICATE UPDATE
(syntax)とREPLACE
(syntax)を使用しようとしましたが、一意の、または主キーとして定義されている列のみに関係しているので、この場合は役に立ちません。
"この値を挿入してこのpost_idに既にこのmeta_keyが存在する場合はどうすればいいですか"ということと、いくつかの異なるpost_id(同じmeta_keyを使用しています)のための方法やアイデアはありますか? 1つの単一のMySQLのクエリ?
おかげで (* IはWordPressの答えでも、これを聞くと、ここにも尋ねる)
はあなたの非常に説明した解答とクエリの例をありがとうございました!私は次の日にこれをテストします、私はそれが問題を解決すると仮定します。 –