今天在写一条sql语句的时候,用的双引号,sql语句执行错误。记的同事问我mysql语句中的单引号和双引号有区别吗?回答是没有区别。
今天特地查了查,还是有点区别的。
mysql中的一段说明:
在mysql中,使用单引号和双引号俩种表达方法是一样的,尽管使用单引号的表达方法符合ANSI-SQL/92标准。
如果在字符串里有引号,则要用以下的不同方式来表示:
"abc'abc" 即 abc'abc
"abc""abc" 即 abc“abc
"abc/'abc" 即 abc'abc
"abc/"abc" 即 abc"abc
'abc"abc' 即 abc"abc
'abc''abc' 即 abc'abc
'abc/"abc' 即 abc"abc
‘abc/'abc' 即 abc'abc
可以看出,尽量还是使用单引号。
当修改了mysql的sql模式的时候(set @@global.sql_mode)的时候,选择不同sql模式,可能会出现单引号和双引号的区别。ANSI-SQL标准。
下面是转载的mysql手册:
mysql中的一个字符串是一个字符序列,由单引号(“'”)或双引号(“"”)字符(后者只有你不在ANSI模式运行)包围。例如:
'a string'
"another string"
在字符串内,某个顺序有特殊的意义。这些顺序的每一个以一条反斜线(“/”)开始,称为转义字符。MySQL识别下列转义字符:
/0一个ASCII 0 (NUL)字符。/n一个新行符。/t一个定位符。/r一个回车符。/b一个退格符。/'一个单引号(“'”)符。/"一个双引号(“"”)符。//一个反斜线(“/”)符。/%一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。/_一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“/%”或“/%_”,这些将返回字符串“/%”和“/_”而不是“%”和“_”。