mysql中单双引号的特殊使用 以及mysql常见的转移字符
mysql中单双引号使用
mysql中使用基本的DML类型的sql语句,“”和‘’是default string label symbols. 但是在实际情况中,经常出现下面的情况:
SELECT book_id FROM pd WHERE isbn='9787542739810' and book_name='"祛魅"与"返魅"';
这种情况下,book_name对应的字符串是没有问题的,sql语句没有语法问题。但是看下面一条语句:
SELECT book_id FROM pd WHERE isbn='9787542739810' and book_name='LET'S GO!马小波罗';
执行该语句:
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
一个退格符。
\ '
一个单引号(“ '”)符。
\ "
一个双引号(“ "”)符。
\\
一个反斜线(“\”)符。
\%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
\_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“\%”或“\%_”,这些将返回字符串“\%”和“\_”而不是“%”和“_”。
有几种方法在一个字符串内包括引号:
一个字符串内用“ '”加引号的“ '”可以被写作为“ ' '”。
一个字符串内用“ "”加引号的“ "”可以被写作为“ " "”。
你可以把一个转义字符(“\”)放在引号前面。
一个字符串内用“ "”加引号的“ '”不需要特殊对待而且不必被重复或转义。同理,一个字符串内用“ '”加引号的与“ "”也不需要特殊对待。