我有这个查询:
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'
,除非您的查询比示例复杂,否则这可能是明智的选择。