从输入转义的SQL特殊字符

时间:2019-04-10 12:10:57

标签: c# mysql sql

在我的数据库中,我有一些文件路径,有时需要更新部分路径。如何处理特殊字符。在\ruba\rubla中进行更新。

\r是特殊字符

\rubla来自C#输入参数到SQL查询

SQL:

update table
set Location = CONCAT('gabiluca.at.gmail.com\folder', 
                       substring(Location, length('gabiluca.at.gmail.com\director') + 1))
where Location like 'gabiluca.at.gmail.com\\\\folder%'

\\\\转换为\

简单情况:

在mysql表中,Windows相对路径存储在名为Location的列中。

Id  Name    Location
38  MuseScore 3.lnk gabiluca.at.gmail.com
39  redenumit   gabiluca.at.gmail.com
40  interior    gabiluca.at.gmail.com\redenumit
41  FileZilla Client.lnk    gabiluca.at.gmail.com\redenumit
42  MuseScore 3.lnk gabiluca.at.gmail.com\redenumit\interior

现在尝试更新:在mysql中使用所有记录上的更新语句更新'redenumit'。剂量有效吗?保留前缀。就像当您将文件夹“ redenumit”重命名为“ changed”时一样。

我什至不能像这样查询(这是问题):

select * 
from MediaResource
where Location like 'gabiluca.at.gmail.com\redenumit%'

1 个答案:

答案 0 :(得分:1)

您可以尝试以下命令吗?

SET sql_mode = NO_BACKSLASH_ESCAPES;

并重置:

SET sql_mode ='';

何时完成处理?