Mysql Windows路径更新

时间:2018-04-03 06:42:55

标签: mysql sql

我在更新存储在表中的路径的子字符串时遇到问题。我需要将列C:\Program Files (x86)的子字符串%APPDATA%更改为path

下面是SQL,这个SQL没有更新路径,显示0个更新的行。我在这做错了什么?

/*Path: C:\Program Files (x86)\Fiddler2\Fiddler.exe*/                     

UPDATE software
SET path = REPLACE(path, 'C:\Program Files (x86)', '%APPDATA%')
WHERE path LIKE '%C:\Program Files (x86)%';

1 个答案:

答案 0 :(得分:3)

在MySQL字符串文字中,反斜杠字符需要通过在其前面加上另一个反斜杠进行转义。

作为一个简单的演示...

SELECT 'C:\foo'   AS one_backslash
     , 'C:\\foo'  AS two_backslash

建议:

在运行UPDATE之前使用SELECT语句测试表达式

SELECT REPLACE(path, 'C:\\Program Files (x86)', '%APPDATA%') AS new_path
  FROM software s 
 WHERE path LIKE '%C:\\Program Files (x86)%'