MySQL Replace()无法替换完全匹配的

MySQL Replace()无法替换完全匹配的,mysql,replace,exact-match,Mysql,Replace,Exact Match,问题就在这里。我的问题是: UPDATE `table` SET `column` = replace(`column`,'123','456'); 这是行不通的。原因如下: 数字字符串“4123”现在变为“4456” 我希望只替换精确匹配(列值正好等于'123')。用一个简单的UPDATE SET=REPLACE()查询就不可能做到这一点吗?似乎不需要REPLACE来做到这一点: UPDATE yourTable SET yourColumn = '456' WHERE yourColumn

问题就在这里。我的问题是:

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`=123456,`column`)


这只会在该列满足条件的情况下给该列一个新值。

+1关于可能需要更新的其他列的优点。请注意!对于这种情况,我不需要这个,但一定会记住,以备将来参考。a+1作为我回答的基础:通常,我是在为一项简单的任务寻找一个过于复杂的解决方案。谢谢大家!@毛茸茸的蝙蝠嘿,这是我的一点:哈哈,揍你一顿。我得开始工作了。。。生活会轻松得多。