免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1332 | 回复: 0
打印 上一主题 下一主题

MySQL字符串 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-26 09:23 |只看该作者 |倒序浏览

作者:天极软件 来源:天极软件
一个字符串是一个字符序列,由单引号(“'”)或双引号(“"”)字符(后者只有你不在ANSI模式运行)包围。例如:
'a string'
"another string"
在字符串内,某个顺序有特殊的意义。这些顺序的每一个以一条反斜线(“”)开始,称为转义字符。MySQL识别下列转义字符:
一个ASCII 0 (NUL)字符。
n
一个新行符。
t
一个定位符。
r
一个回车符。
b
一个退格符。
'
一个单引号(“'”)符。
"
一个双引号(“"”)符。
一个反斜线(“”)符。
%
一个“%”符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
_
一个“_”符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意,如果你在某些正文环境中使用“%”或“%_”,这些将返回字符串“%”和“_”而不是“%”和“_”。
有几种方法在一个字符串内包括引号:

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

下面显示的SELECT演示引号和转义如何工作:
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', ''hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", ""hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "ThisnIsnFournlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+

如果你想要把二进制数据插入到一个BLOB列,下列字符必须由转义序列表示:
NUL
ASCII 0。你应该用''(一个反斜线和一个ASCII '0')表示它。
ASCII 92,反斜线。用''表示。
'
ASCII 39,单引号。用“'”表示。
"
ASCII 34,双引号。用“"”表示。
如果你写C代码,你可以使用C API函数mysql_escape_string()来为INSERT语句转义字符。见20.3 C API 函数概述。在 Perl中,你可以使用DBI包中的quote方法变换特殊的字符到正确的转义序列。见20.5.2 DBI接口。
你应该在任何可能包含上述任何特殊字符的字符串上使用转义函数!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_706502.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP