MySQL更新Windows路径子串失败:替换C:\Program Files (x86)为%APPDATA%无效
解决SQL路径替换无行受影响的问题
嘿,这个问题我之前也碰到过!你之所以看到0行受影响,核心原因是SQL里的反斜杠没有正确转义。
在SQL的字符串语法里,反斜杠\是特殊的转义字符——单个反斜杠会被数据库当作“转义标记”,而不是你要匹配的实际路径字符。这就导致你的LIKE条件找不到对应的数据,REPLACE函数也找不到要替换的子串,自然就没有行被更新了。
修正后的SQL语句
把每个单个的\换成双反斜杠\\,让数据库识别为实际的反斜杠字符,就能正常工作了:
UPDATE software SET path = REPLACE(path, 'C:\\Program Files (x86)', '%APPDATA%') WHERE path LIKE '%C:\\Program Files (x86)%';
稳妥的测试小技巧
为了避免误操作,你可以先执行SELECT语句验证匹配是否正确,确认有符合条件的行后再执行更新:
SELECT path FROM software WHERE path LIKE '%C:\\Program Files (x86)%';
内容的提问来源于stack exchange,提问作者EternalSunShine
相关产品推荐
相关产品推荐

