我有这个查询:

UPDATE tbl SET fldname = replace(fldname,'St','Stats');


但是,如果任何以字母St开头的字母(例如Stump),则看起来像Statsump。我怎样才能用完全匹配替换St?谢谢!

最佳答案

AFAIK MySQL不直接支持正则表达式替换(http://bugs.mysql.com/bug.php?id=27389),除非您使用user defined functions

不过,您可以尝试添加WHERE char_length( fldname ) == 5-这只会匹配长度为5的字符串,并且唯一包含'Stats'的长度为5的字符串是... 'Stats'

或者当然放弃整个过程,然后执行SET fldname='St' WHERE fldname == 'Stats',除非您的查询比示例复杂,否则这可能是明智的选择。

10-04 16:14