2017-01-06 8 views
0

wordpressデータベースのMySQLフィールド全体を置き換えたいとします。私は、私は、次の作業のクエリを持ってMySQLその一部ではないフィールド全体を検索して置き換えます

カスタムフィールド「従業員」の「トムと「マーク」を置換したい:

UPDATE 'wp_postmeta' 
SET 'meta_value' = replace(meta_value, 'Mark', 'Tom') 
WHERE 'meta_key' LIKE 'employee' 

私が午前問題は、私は「マーク」を置換したくないということです'Mark Frey'( - > Tom Frey)や 'Markus'( - > Tomus)の順である。 フィールド全体を置き換えたいだけで、フィールドの一部ではありません。結果は次のようになります。

マーク - >トム

マーク・フレイ - >マーク・フレイ

マルクス - >マルクス

それはphpMyAdminの中でこれを行うことは可能ですか?

答えて

0

あなたはmeta_valueフィールドは、まさにこの場合'Mark'には、あなたが交換したいものと等しいことを確認しWHERE句に条件を追加することができます:私はあなたが持っていた単一引用符を削除

UPDATE wp_postmeta 
SET meta_value = REPLACE(meta_value, 'Mark', 'Tom') 
WHERE meta_key LIKE 'employee' AND 
     meta_value = 'Mark' 

注意テーブル名とフィールド名は、少なくとも生のMySQLクエリには含まれていないので、そこに属していないからです。

更新:@HankyPankyが指摘したように

、あなたはまた、単にmeta_valueの直接更新を行うことができます:

UPDATE wp_postmeta 
SET meta_value = 'Tom' 
WHERE meta_key LIKE 'employee' AND 
     meta_value = 'Mark' 
+1

正確な 'meta_value'が分かっている場合は、我々は削除することはできません。 'REPLACE'呼び出しを呼び出して、単純な割り当てを使用します。 'SET meta_value = 'Tom'' –

+0

@HankyPankyまず質問について考えてみましょう:-) –

+0

私は2番目の解決策(REPLACEなし)を試してみました。 – Philip

関連する問題