在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“/”)开头,称为转义字符。 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 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。
/_
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。
注意如果在某些正文环境内使用 “/%” 或 “/_”,将返回字符串 “/%” 和 “/_” 而不是 “%” 和 “_”。
字符串中包含引号的可以有下列几种写法:
一个字符串用单引号“'”来引用的,该字符串中的单引号“'”字符可以用“''”方式转义。
一个字符串用双引号“"”来引用的,该字符串中的“"”字符可以用“""”方式转义。
你也可以继续使用在引号前加一个转义字符“/”来转义的方式。
一个字符串用双引号“"”来引用的,该字符串中的单引号“'”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“'”来引用的,该字符串中的双引号“"”不需要特殊对待而且不必被重复或转义。
下面显示的 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";+--------------------+| ThisIsFourlines |+--------------------+
如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示:
NUL
ASCII 0,你应该用 “/0”(一个反斜线和一个ASCII “0”字符)表示它。
/
ASCII 92,反斜线。需要用 “//” 表示。
'
ASCII 39,单引号。需要用 “/'” 表示。
"
ASCII 34,双引号。需要用 “/"” 表示。
你应该在任何可能包含上述特殊字符的字符串中使用转义函数!
另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。
/***
* 将写入到ads中数据的特殊字符过滤掉
*/
public static String strFilter(String str) throws PatternSyntaxException {
if(StringUtils.isEmpty(str)){
return str;
}
return str.replaceAll("\\\\", "").replaceAll("'", "")
.replaceAll("\0", "").replaceAll("\'", "").replaceAll("\"", "")
.replaceAll("\b", "").replaceAll("\n", "")
.replaceAll("\\_", "").replaceAll("\\%", "")
.replaceAll("\r", "").replaceAll("\t", "")
.replaceAll("\\Z", "")
;
}
相关推荐
总结来说,处理Python中的MySQL特殊字符问题,主要有以下几点: 1. 使用`str.format()`方法构建SQL语句,以避免因特殊字符引起的语法错误。 2. 当需要在`LIKE`操作符中使用`%`时,需要在Python字符串中使用四个`%`...
### PHP、JavaScript、HTML、MySQL特殊字符处理 在开发Web应用程序时,经常需要处理各种特殊字符,尤其是在PHP、JavaScript、HTML以及MySQL等技术栈中。本文将详细介绍这些技术栈中特殊字符的处理方法。 #### 一、...
在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“”)开头,称为转义字符。 MySQL 识别下列转义字符: 0 一个 ASCII 0 (NUL) 字符。 ‘ 一个 ASCII 39 单引号 (“’”) 字符。 ” 一个 ASCII ...
在MySQL中保存微信昵称,特别是包含特殊字符如表情符号(Emoji)的昵称时,可能会遇到插入数据时报错的问题。这是因为MySQL的默认UTF-8字符集(实际上是`utf8`,并非完全标准的UTF-8)仅支持最多3字节的字符,而一些...
MySQL字符集问题一直以来都是数据库管理中的一个痛点,尤其是在处理多语言数据或者进行数据迁移时,不恰当的字符集设置可能导致乱码、无法存储特殊字符甚至数据丢失。这篇文档将深入探讨MySQL字符集的工作原理,常见...
`表示零次或一次,`[]`用于定义字符集,`|`表示或操作,`\`用于转义特殊字符。 在实际应用中,正确理解和运用这些MySQL语法、特殊符号和正则表达式,能极大地提高数据库管理效率和查询性能。记住,良好的数据库设计...
- 如果表名中包含空格或其他特殊字符,需用反引号(`)包裹起来。 - 此命令可以用来帮助恢复丢失的表结构或迁移表结构到其他数据库。 ### 4. 查看表信息:`desc xiaonei;` **知识点详解:** - **命令功能**:查看...
那问题来了,怎么才能匹配出中文字符呢? 本文提供两种方法。 二 演示 2.1 环境 mysql> SHOW VARIABLES LIKE "%version%"; + ————————-+——————————+ | Variable_name | ...
### MySQL常见面试问题详解 #### 1. MySQL简介与特性 - **MySQL**:MySQL是一种关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前由Oracle公司维护。它以其高性能、高可靠性和易用性著称,在互联网行业...
本篇文章将详细介绍不同类型的MySQL连接字符串及其用法。 首先,我们来看MySQL Connector/ODBC的连接方式。ODBC(Open Database Connectivity)是一种通用数据库访问接口,它允许应用程序通过ODBC驱动程序连接到...
标题“URL特殊字符”涉及到的是在互联网中使用URL(统一资源定位符)时遇到的一些特殊字符问题。URL是用于在互联网上唯一标识资源的字符串,它由若干个部分组成,包括协议、主机名、路径、查询参数等。在URL中,某些...
MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...
在IT领域,尤其是在数据库管理、编程、文本处理等环节,特殊字符可能会引发各种问题,如数据格式错误、程序执行异常、安全风险等。因此,进行特殊字符检测是保证数据安全性和系统稳定性的关键步骤。 描述中的“可以...
因此,在设计与无线互联网相关的MySQL数据库时,推荐采用UTF-8mb4字符集来确保能够妥善处理emoji表情符号,避免出现数据存储或显示上的问题。 #### 限制 使用UTF-8mb4字符集的前提条件包括: - MySQL服务器版本需...
字符集是一种系统化的字符集合,用于表示文本中的字符,包括字母、数字、标点符号和其他特殊字符。它定义了字符与其在计算机内部表示(通常是二进制数字)之间的映射关系。 #### 拉丁文与中文字符集标准简史 - **...
3. **无法正确存储一些特殊字符,如emoji表情**。 #### 五、分析乱码产生的原因 ##### 5.1 MySQL字符集相关变量理解 MySQL中与字符集相关的变量主要有以下几个级别: - **数据库服务器级别**:通过`my.ini`...
MySQL字符集设置原理及其常见问题解决是数据库管理中不可或缺的一部分,尤其对于处理多语言或特殊字符的数据时,正确的字符集配置至关重要。字符集定义了数据库、表和字段能存储的字符范围,它决定了数据的编码和...