0

这就是问题所在。我的查询:

UPDATE `table` SET `column` = replace(`column`,'123','456');

不会工作。原因如下:

数字字符串“4123”现在变为“4456”。

我想要的是只替换精确匹配(列值正好等于'123')。这不可能通过简单的 UPDATE SET = REPLACE() 查询吗?

4

2 回答 2

8

似乎您不需REPLACE要这样做:

UPDATE yourTable SET yourColumn = '456' WHERE yourColumn = '123';
于 2013-05-26T01:13:19.753 回答
4

正如保罗所说,您不需要REPLACE()调用,只需添加一个合适的WHERE子句。

也就是说,如果这也是更新其他列的更大查询的一部分,请尝试以下操作:
SET `column`=IF(`column`=123, 456, `column`)

如果它满足条件,这只会给该列一个新值。

于 2013-05-26T01:15:46.257 回答