0

「バリエーション」というカスタムフィールドがあり、その中に「黒、赤、青」のような色(カンマ区切り)があります。cronジョブを使用して、毎日色を別の言語に置き換える必要があります。1つの単一の色の変更の場合、これは黒をノワールに変更するために機能します。

UPDATE `wp_postmeta` 
SET `meta_value` = replace(meta_value, 'Black', 'Noir')
WHERE `meta_key` LIKE 'variations'

すべてが順調ですが、この同じクエリ内の複数の色を置き換えたいと思います。私は、20の可能な色の変化すべてをカバーするために、20の同様のクエリを持たないことを好みます。

このようなことは可能ですか?

UPDATE `wp_postmeta` 
SET `meta_value` = replace(meta_value, 'Black', 'Noir'), (meta_value, 'Green', 'Vert') 
WHERE `meta_key` LIKE 'variations'   

私はテストシステムを持っていません、そして私はおそらく私のデータベースを台無しにしたくありません。

4

2 に答える 2

1

クエリが何をするかを確信できるようにするUPDATEために、ほとんどの場合、SELECTそれを使用して生成するデータを確認できる形式があります。この場合、次のことができます。

SELECT meta_value, REPLACE(
                        REPLACE(  meta_value, 
                                  'Black', 
                                  'Noir'
                        ), 
                        'Geen', 
                        'Vert')
FROM wp_postmeta WHERE meta_key LIKE variations;
于 2013-03-02T10:02:19.550 に答える