• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql中单双引号的非一般使用 以及mysql常见的转移字符

mysql 搞代码 7年前 (2018-06-05) 179次浏览 已收录 0个评论

mysql中单双引号的特殊使用 以及mysql常见的转移字符
mysql中单双引号使用
mysql中使用基本的DML类型的sql语句,“”和‘’是default string label symbols. 但是在实际情况中,经常出现下面的情况:

SELECT book_id FROM pd WHERE isbn='9787542739810' and book_name='"祛魅"与"返魅"';

欢迎大家阅读《mysql中单双引号的非一般使用 以及mysql常见的转移字符》,跪求各位点评,by 搞代码

这种情况下,book_name对应的字符串是没有问题的,sql语句没有语法问题。但是看下面一条语句:

SELECT book_id FROM pd WHERE isbn='9787542739810' and book_name='LET'S GO!马小波罗';

执行该语句:

引用
报异常:You have an error in your SQL syntax;

到这,大家可能会说,你把’LET’S GO!马小波罗’ 中外围的两个单引号换成双引号不就搞定了。可现实往往是按照墨菲定律向着最坏的情况发展。很多情况下,我们都不知道传入的增、删、改、查的字符串中,是否含有”,’,或者是两者同时含有,所以不能简单的遇到单引号替换成双引号,遇到双引号替换成单引号。这就需要用到sql的转义字符了。

引用
/ ‘  
一个单引号(“ ‘”)符。  
/ ”  
一个双引号(“ “”)符。  
//  
一个反斜线(“/”)符。  

【关于其他转义字符的信息,在下面的一节中做全面介绍】

下面是转义用的java代码,仅供参考:

String str = "askdjf;lskdjf'asdf/"asdfasdf";   System.out.println(str);   if (str.indexOf("'") >= 0)    str = str.replaceAll("'", "////'");   if (str.indexOf("/"") >= 0)    str = str.replaceAll("/"", "/////"");   System.out.println(str);

mysql转义字符

  • /0  
    一个ASCII   0   (NUL)字符。  
    /n  
    一个新行符。  
    /t  
    一个定位符。  
    /r  
    一个回车符。  
    /b  
    一个退格符。  
    / ‘  
    一个单引号(“ ‘”)符。  
    / ”  
    一个双引号(“ “”)符。  
    //  
    一个反斜线(“/”)符。  
    /%  
    一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。  
    /_  
    一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。  
    注意,如果你在某些正文环境中使用“/%”或“/%_”,这些将返回字符串“/%”和“/_”而不是“%”和“_”。  

    有几种方法在一个字符串内包括引号:  

    一个字符串内用“ ‘”加引号的“ ‘”可以被写作为“ ‘ ‘”。  
    一个字符串内用“ “”加引号的“ “”可以被写作为“ ” “”。  
    你可以把一个转义字符(“/”)放在引号前面。  
    一个字符串内用“ “”加引号的“ ‘”不需要特殊对待而且不必被重复或转义。同理,一个字符串内用“ ‘”加引号的与“ “”也不需要特殊对待。  


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql中单双引号的非一般使用 以及mysql常见的转移字符

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址