MySQL替换函数不够具体
我只是想用13代替2。当我使用上面的示例202时,它变为13013,因为它正在替换数字202中2的两个实例。我只想将2替换为13,而不是在其他较大的数字中替换为2。如果指定where子句,则只会更新与确切子句匹配的结果,以便可以尝试以下操作:MySQL替换函数不够具体,mysql,function,replace,Mysql,Function,Replace,我只是想用13代替2。当我使用上面的示例202时,它变为13013,因为它正在替换数字202中2的两个实例。我只想将2替换为13,而不是在其他较大的数字中替换为2。如果指定where子句,则只会更新与确切子句匹配的结果,以便可以尝试以下操作: UPDATE `link_tag` SET `TagID` = replace(TagID, 2, 13) 现在它只会更改TagID实际上等于2的2 更好的方法是这样做: UPDATE `link_tag` SET `TagID` = replace
UPDATE `link_tag`
SET `TagID` = replace(TagID, 2, 13)
现在它只会更改TagID实际上等于2的2
更好的方法是这样做:
UPDATE `link_tag`
SET `TagID` = replace(`TagID`, 2, 13)
WHERE `TagID` = 2
请说明示例dataMySQL没有内置的正则表达式替换支持,这可能非常棘手TagID@TimBiegeleisen你能详细解释一下为什么不能吗?@TimBiegeleisen这就是OP的问题所在,他只想更改一个“2”,如果这是列的确切值,他不想要列“22”要成为“1313”@TimBiegeleisen,这不是问题,但我要谈谈OP文章的最后一句话,他明确表示这是他的意图:)
UPDATE `link_tag` SET `TagID` = 13 WHERE `TagID` = 2