字符串是多个字符组成的一个字符序列,由单引号( “'”) 或双引号 ( “"”) 字符包围。(但在 ANSI 模式中运行时只能用单引号)。

例如:

'a string'
"another string"

在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“/”)开头,称为转义字符。 MySQL 识别下列转义字符:

/0
一个 ASCII 0 (NUL) 字符。
/'
一个 ASCII 39 单引号 (“'”) 字符。
/"
一个 ASCII 34 双引号 (“"”) 字符。
/b
一个 ASCII 8 退格符。
/n
一个 ASCII 10 换行符。
/r
一个 ASCII 13 回车符。
/t
一个 ASCII 9 制表符(TAB)。
/z
ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。)
//
一个 ASCII 92 反斜线 (“/”) 字符。
/%
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数。
/_
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。查看章节 6.3.2.1 字符串比较函数.

注意如果在某些正文环境内使用 “/%” 或 “/_”,将返回字符串 “/%” 和 “/_” 而不是 “%” 和 “_”。

字符串中包含引号的可以有下列几种写法:

  • 一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
  • 一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。
  • 你也可以继续使用在引号前加一个转义字符“/”来转义的方式。
  • 一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。

下面显示的 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 "This/nIs/nFour/nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+

如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示:

NUL
ASCII 0,你应该用 “/0”(一个反斜线和一个ASCII “0”字符)表示它。
/
ASCII 92,反斜线。需要用 “//” 表示。
'
ASCII 39,单引号。需要用 “/'” 表示。
"
ASCII 34,双引号。需要用 “/"” 表示。

如果你写 C 代码,你可以使用 C API 函数mysql_real_escape_string() 来为 INSERT 语句转义字符。查看章节 8.1.2 C API 函数概述。在 Perl 中,你可以使用 DBI 包中的 quote 方法来将这些特殊字符转换成适当的转义序列。查看章节 8.5.2 DBI 接口。

你应该在任何可能包含上述特殊字符的字符串中使用转义函数!

另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。

Mysql中的转义字符相关推荐

  1. MySQL中ESCAPE关键字的用法

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"\" ...

  2. MySQL中ESCAPE关键字的用法详解

    MySQL中ESCAPE关键字的用法详解 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 2. escape验证 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 ...

  3. MySQL中escape(避开,逃避)关键字的用法

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"\" ...

  4. mysql 中文转义字符_Mysql中的转义字符_MySQL

    字符串是多个字符组成的一个字符序列,由单引号("'") 或双引号 (""") 字符包围.(但在 ANSI 模式中运行时只能用单引号). 例如: 'a ...

  5. MySQL 中的反斜杠 \\,真是太坑了!!

    作者 | 陈哈哈 来源 | https://blog.csdn.net/qq_39390545/article/details/117296607 在MySQL中有很多特殊符号都是相当恶心的,比如字符 ...

  6. mysql access 2017_如何把Access的数据导入到Mysql中

    在建设网站的过程中,经常要处理一些数据的导入及导出.在Mysql数据库中,一般有两种方法来处理数据的导出: 1. 使用select * from table_name into outfile &qu ...

  7. Mysql中各种与字符编码集(character_set)有关的变量含义

    mysql涉及到各种字符集,在此做一个总结. 字符集的设置是通过环境变量来设置的,环境变量和linux中的环境变量是一个意思.mysql的环境变量分为两种:session和global.session ...

  8. Mysql 模糊查询 转义字符

    MySQL的转义字符"\" \0   一个ASCII  0  (NUL)字符.    \n    一个新行符.    \t    一个定位符.    \r    一个回车符.    ...

  9. MySQL中通过结构化文本倒腾数据

    拼接为sql语句 使用mysql dump可以对表或者其它对象dump出来,可以以文本或者sql语句的形式,如果针对一张表的结果集还好说,甚至还可以使用where选项,但如果是多表关联,就不能把整个结 ...

最新文章

  1. javascript标签在页面中的位置探讨
  2. 作品第四课----agruments应用一求出函数参数的总合
  3. c语言计算坐标三角形面积公式,c语言计算三角形面积代码
  4. opengl加载显示3D模型off类型文件
  5. Ubuntu安装amule和编译安装amule-dlp
  6. DM365 u-boot 启动分析
  7. workflow java_workflow java实现的activity工作流实例 Develop 238万源代码下载- www.pudn.com...
  8. 【转】建立公用程序库,提升软件开发生产力
  9. MATLAB工具箱下载地址
  10. jwt token注销_详解JWT token心得与使用实例
  11. Ajax提交数据判断员工编号是否存在,及自动填充与员工编号所对应的员工姓名。...
  12. 系统管理员设置了系统策略 禁止进行此安装的修改办法
  13. ICCV 2021|“白嫖”性能的MixMo,一种新的数据增强or模型融合方法
  14. 【浙江省第16届省赛E:】Sequence in the Pocket(思维--不模拟复杂过程)
  15. CCPC-wannafly Camp Day2 讲课内容总结(杜瑜皓-数据结构)
  16. c语言单循环赛制,循环赛日程安排问题(分治法)
  17. CSDN 空间:“迷你博客”很迷人(1)
  18. 解决Loadrunner打开网页证书错误问题
  19. python石头剪刀布游戏代码输入格式随机数种子设置为0_Python模拟石头剪刀
  20. 计算机能够快速准确,计算机操作练习题

热门文章

  1. jq之text() html()
  2. linux可以用dos命令是什么意思,Linux系统常用命令与DOS命令的类似之处和本质区别各是什么?...
  3. db2存储过程 可以使用游标循环嵌套吗_DB2存储过程使用动态游标的例子
  4. 浅析Linux开发工具之gcc/g++
  5. 带电检测必要性_接地电阻检测分析的必要性
  6. python datetime.datetime 当前_关于datetime:如何让python显示当前时间(东部)
  7. C++语言程序设计上机指导(二级),C++语言程序设计上机指导(二级)
  8. python爬取百度文库_利用Python语言轻松爬取数据
  9. java堆外内存溢出_JVM 案例 - 堆外内存导致的溢出错误
  10. java 同步 变量,在java中的对象上同步,然后更改同步的变量的值