MySQL运维实战(4.6) SQL_MODE之NO_BACKSLASH_ESCAPES

俊达3年前技术文章1824

设置NO_BACKSLASH_ESCAPES后,反斜杠(\)不作为转义符。


不设置NO_BACKSLASH_ESCAPES时,反斜杠(\)用来转义后一个字符

mysql> create table t_escape(id int, a varchar(100));
Query OK, 0 rows affected (0.01 sec)

-- 默认情况,反斜杠是转义符,会改变后一个字符的含义。
mysql> set sql_mode='';
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t_escape values(1, 'a\'b');
Query OK, 1 row affected (0.00 sec)


mysql> select * from t_escape;
+------+------+
| id   | a    |
+------+------+
|    1 | a'b  |
|    2 | a\b  |
+------+------+
2 rows in set (0.00 sec)



设置NO_BACKSLASH_ESCAPES:

-- 这个SQL中单引号不匹配,报语法错误
mysql> insert into t_escape values(3, 'a\'b');
    '> ';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b');
'' at line 1

-- 2个反斜杠都写入到表中
mysql> insert into t_escape values(4, 'a\\b');
Query OK, 1 row affected (0.01 sec)


-- 单引号不能用反斜杠转义,使用单引号转义单引号(使用2个单引号代表一个单引号)。
mysql> insert into t_escape values(5, 'a''b');
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_escape;
+------+------+
| id   | a    |
+------+------+
|    1 | a'b  |
|    2 | a\b  |
|    4 | a\\b |
|    5 | a'b  |
+------+------+
4 rows in set (0.00 sec)





相关文章

MySQL运维实战(4.7) SQL_MODE之ANSI_QUOTES

默认情况下,mysql使用反引号(`)作为标识符的引号。使用mysql关键字作为表名、字段名会报语法错误,这时可以加上反引号( `),避免报错。设置ANSI_QUOTES后,使用双引号(")...

MySQL优化器特性(二)MRR优化

MySQL优化器特性(二)MRR优化

Index Range Scan索引范围扫描的一般步骤:1、根据where条件,从B+树定位到第一条记录。2、从索引页子节点中获取到行号(rowid),根据rowid回表查询数据。3、使用额外的whe...

MySQL运维实战(4.3) SQL_MODE之ONLY_FULL_GROUP_BY

设置ONLY_FULL_GROUP_BY后,对有group by子句SQL,select的字段要么是group by中的字段,要么对字段进行聚合运算,否则sql执行报错。不设置ONLY_FULL_GR...

MySQL运维实战(3.2) 常见数据库连接失败问题排查

如果数据库连接失败,可以从如下几方面来排查:1、客户端到服务端的网络是否畅通,服务端端口是否能连通。使用ping、telnet等工具探测服务端的端口是否能访问。[root@box3 ~]#&...

MySQL优化器特性(五)单表访问路径

数据库的访问路径(access path)是指从表中获取数据的方式,一般可以通过扫描表或通过索引获取数据。想熟练掌握SQL优化技能,首先需要熟悉单表访问路径。本文先简单介绍MySQL支持的各种单表访问...

MySQL运维实战(5.5) 数据导入导出时的字符集问题

mysql可以使用load data/select into outfile或mysqldump工具进行数据导入导出。下面分别分析数据导入导出时的字符集相关问题。准备测试数据创建测试表,2个字段分别使...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。