这是问题所在。我的问题:
UPDATE `table` SET `column` = replace(`column`,'123','456');
不会起作用。原因如下:
数字字符串'4123'现在变为'4456'。
我想要的是仅替换EXACT匹配(列值等于'123')。这是不可能使用简单的UPDATE SET = REPLACE()查询??
答案 0 :(得分:7)
您似乎不需要REPLACE
来执行此操作:
UPDATE yourTable SET yourColumn = '456' WHERE yourColumn = '123';
答案 1 :(得分:4)
正如Paul所说,你不应该进行REPLACE()
调用,只需添加一个合适的WHERE
条款。
也就是说,如果这是更新其他列的更大查询的一部分,请尝试:
SET `column`=IF(`column`=123, 456, `column`)
如果满足条件,这只会给该列一个新值。