これが問題です。私のクエリ:
UPDATE `table` SET `column` = replace(`column`,'123','456');
うまくいきません。理由は次のとおりです。
数値文字列 '4123' は '4456' になります。
私が望むのは、完全に一致するもの (列の値が正確に「123」に等しい) のみを置き換えることです。これは単純な UPDATE SET = REPLACE() クエリでは不可能ですか??
これが問題です。私のクエリ:
UPDATE `table` SET `column` = replace(`column`,'123','456');
うまくいきません。理由は次のとおりです。
数値文字列 '4123' は '4456' になります。
私が望むのは、完全に一致するもの (列の値が正確に「123」に等しい) のみを置き換えることです。これは単純な UPDATE SET = REPLACE() クエリでは不可能ですか??
これを行う必要はないようですREPLACE
:
UPDATE yourTable SET yourColumn = '456' WHERE yourColumn = '123';
Paul が言うように、適切な句REPLACE()
を追加するだけで、呼び出しは必要ありません。WHERE
とはいえ、これが他の列も更新するより大きなクエリの一部である場合は、これを試してください。
SET `column`=IF(`column`=123, 456, `column`)
これは、条件を満たしている場合にのみ、その列に新しい値を与えます。