MySQL替换功能不够具体

时间:2017-05-19 06:26:19

标签: mysql function replace

 UPDATE `link_tag`
 SET `TagID` = replace(TagID, 2, 13)

我特别只是尝试用13代替2.当我使用上面的例子时202变为13013,因为它正在替换数字202中的2个实例。我只想用13替换2,而不是2在其他更大的数字内。

1 个答案:

答案 0 :(得分:1)

如果你指定了一个where子句,你只会更新与exact子句匹配的结果,所以你可以尝试这样的事情:

UPDATE `link_tag`
SET `TagID` = replace(`TagID`, 2, 13)
WHERE `TagID` = 2

现在它只会改变TagID实际上等于2的2

更好的方法是这样做:

UPDATE `link_tag` SET `TagID` = 13 WHERE `TagID` = 2