首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL解释生成的查询中的特殊字符

问MySQL解释生成的查询中的特殊字符
EN

Stack Overflow用户
提问于 2010-06-23 12:42:31
回答 1查看 575关注 0票数 1

我正在尝试使用MySql.data.dll将我们框架的数据库层从SQLServer迁移到MySQL。我在MySQL中生成了以下查询:

代码语言:javascript
复制
select * from `user` where `user_domainname` = 'domain\beth';

MySQL将上述字符串中的'\b‘解释为钟形字符,而SqlServer不解释任何此类转义字符。在MySQL中的解决方案是-

代码语言:javascript
复制
select * from `user` where `user_domainname` = 'domain\\beth';

要在C#中这样做,我必须将每个\b或其他类似的字符替换为\b,考虑到我最终要进行的此类转换的数量,这对我来说不是一个非常可行的选择。

所以我的问题是-在MySQL中有什么选项可以避免它在数据库级别解释这样的特殊字符。如果不是,有什么api可以用来执行这样的转换。我确实检查了MySqlHelper类,但在那里找不到任何有用的东西。

提前谢谢你,

巴拉特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-23 12:48:44

从MySQL 5.0.1开始,您可以设置NO_BACKSLASH_ESCAPES将反斜杠转换为另一个普通字符。但是,请确保您永远不要在其他地方使用反斜杠!

要在活动服务器上执行此操作(直到服务器重新启动):

代码语言:javascript
复制
SET GLOBAL sql_mode='NO_BACKSLASH_ESCAPES';

不要忘记将其添加到您的MySQL配置文件(my.cnf或my.ini)中,以便在下次启动时生效!添加这行

代码语言:javascript
复制
sql-mode=NO_BACKSLASH_ESCAPE
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3098978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档