mysql单引号转义_sql语句中使用单引号'作为转义字符
在SQL中,我们都知道单引号 ' 表示字符串的开始和结束符号,如:
select * from students where name = '小明';
但如果字符串里面有单引号时,应该怎么查询呢?
这是我最近遇到的一个问题,需求是对一张表的数据进行更新,但各个环境的数据并不一致,只能通过拼接的方式生成适合对应环境的变更脚本。更新语句格式如下:
1 update students set grade = '一年级' where grade_id = '01' and grade is null;
2 update students set grade = '二年级' where grade_id = '02' and grade is null;
3 ...
4 --只是举例,实际就是各个环境字段值不一致,需要先根据环境拼接变更脚本
拼接sql语句的脚本初始如下:
--db2数据库使用下面的语句
select 'update students set grade = ' || grade || ' where grade_id = ' || grade_id || ' and grade is null;' from classes
where grade_id in (select grade_id from students where grade_id is not null and grade is null);
--mysql数据库使用下面的语句
select concat('update students set grade = ',grade,' where grade_id = ',grade_id,' and grade is null;') from classes
where grade_id in (select grade_id from students where grade_id is not null and grade is null);
结果如下:
可以发现,字符串值没有单引号,直接运行会报错。google后找到解决办法。sql单引号
sql的转义字符单引号 ' ,可以对字符串中的单引号进行转义,使其表示字符串值 ' ,这样如果要查询 name 为 小'明 的值,其sql语句如下:
select * from students where name = '小''明';
所以上面的拼接脚本修改如下,即可生成正确的update语句。
1 --db2数据库使用下面的语句
2 select 'update students set grade = ''' || grade || ''' where grade_id = ''' || grade_id || ''' and grade is null;' from classes
3 where grade_id in (select grade_id from students where grade_id is not null and grade is null);
4
5 --mysql数据库使用下面的语句
6 select concat('update students set grade = ''',grade,''' where grade_id = ''',grade_id,''' and grade is null;') from classes
7 where grade_id in (select grade_id from students where grade_id is not null and grade is null);
8
9 --注意三个逗号需连续,且与其他字符间的空格
如: insert into yourTable(f1,f2) values(100,'ab''c') 可以插入 ab'c
mysql单引号转义_sql语句中使用单引号'作为转义字符相关推荐
- java 中的单引号报错_shell中的单引号,双引号,反引号
docker的父镜像中定义了一个环境变量,我们的镜像在启动命令中需要用到这个环境变量.但是不加双引号时总是报错,报找不到java的启动类,加上双引号就不报错了. 父镜像中定义的变量:$xxx_CMD ...
- MYSQL ‘单引号转义 \反斜杠转义
1.单引号 ' 转义 今天写mysql的时候遇到一个问题,当传入的mysql语句的参数中含有单引号就会出现问题,这就需要用到转义,其实非常简单,就是使用 .Replace("'", ...
- mysql注入单引号被过滤_证明过滤单引号的ORDER BY可以注入
题目:证明基于ORDER BY的SQL 注入,且单引号(')被过滤. 已知:代码如下,有注入无悬念. $sortColumn = mysqli_real_escape_string($_GET['so ...
- mysql语言注释符号_sql语句中的注释符号
部署web应用 package it.cast.servlet; import java.io.IOException; import java.io.PrintWriter; import java ...
- mysql sql语句 引号_关于sql:何时在MySQL中使用单引号,双引号和反引号
我正在尝试学习编写查询的最佳方法. 我也理解保持一致的重要性. 到现在为止,我已经随机使用单引号,双引号和反引号而没有任何实际想法. 例: $query = 'INSERT INTO table (i ...
- java html 双引号转义,java如何将单引号转义
java如何将单引号转义 [2021-02-09 22:01:08] 简介: php单引号与双引号的区别:1.单引号和双引号中都可以使用转义字符[\],但只能转义在单引号中引起来的单引号和转义转义符 ...
- mysql单引号和双引号
表名,列名最好用`(esc下面那个,不用`会出错) 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出.例如: $ab ...
- 双引号内的单引号转义
多引号内的单引号转义 '-->单引号转义 "-->双引号 thtml+="<input type='text' autocomplete='off' value= ...
- java程序单引号报错_JavaScript中的单引号和双引号报错的解决方法
在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...
最新文章
- (10)调用门提权(无参数)
- 【Linux】一步一步学Linux——cp命令(31)
- python运维工程师招聘_【python自动化运维工程师工资】图灵学院2020年python自动化运维工程师工资待遇-看准网...
- 【抽象代数】类方程和有限群
- 转行前端很迷茫,该怎么办?
- Python 爬虫的集中简单方式
- php mysql sql model_PHP数据库模型
- Oracle数据库多语言文字存储解决方案
- JS表单验证之正则表达式
- Vue的内置指令:v-if和v-show的区别
- (14.1)Zotero常用功能:插件、导入题录、参考文献
- java 背单词系统_基于JAVA模拟背单词系统(含源文件)
- 【缓存】缓存更新策略
- 首款物联网防火墙himqtt开源
- Spyder启动闪退或打开项目编码报错
- Numpy数组的索引与切片:取数组的特定行列
- CUMT2022网络攻防考试
- L1-8 牛的对称 (20 分)
- 闲鱼选品我使用的4个网站,附赠20个流量密码关键字!
- pdf转换成word转换器