mysql 特殊字符
1、倒引号,比如表中有一个字段为desc,在mysql中desc是关键字,如何表明desc是字段呢?
有两种办法:desc使用倒引号引起来,或者在desc前面加上表名,如下:
mysql> select desc from student;
1064 - 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 'desc from student' at line 1
mysql> select `desc` from student;
+-------+
| desc |
+-------+
| hello |
+-------+
1 row in set
mysql> select student.desc from student;
+-------+
| desc |
+-------+
| hello |
+-------+
1 row in set
2、考虑下面的存储过程
DELIMITER ;;
CREATE PROCEDURE `qry_student`(in iName varchar(64), in iAge int)
BEGIN
select * from student where school='NUM_1' and name = iName and age>iAge;
END
;;
DELIMITER ;
如何使用动态sql语句来完成上面的功能?
注意:上面的情况,不应该使用动态sql语句,这里只是为了举例。有些复杂的业务逻辑需求,需要组成动态sql语句。
3、第一个问题,单引号当中有单引号,怎么办?
里面的单引号使用双引号,或者转义,转义有两种办法:两个单引号 '',或者 \',如下:
set vSql = concat('select * from student where school="NUM_1" ','and name =''',iName,''' and age>',iAge);
set vSql = concat('select * from student where school=''NUM_1'' ','and name =''',iName,''' and age>',iAge);
set vSql = concat('select * from student where school=\'NUM_1\' ','and name =''',iName,''' and age>',iAge);
使用双引号,拼出来的sql语句也是双引号,在mysql中,char(varchar)使用单引号和双引号都是可以的。
4、对于变量iName,也需要用单引号引起来,怎么办?
同样可以使用上面的办法,但是需要注意的是:'and name =''', 前面的单引号是最长匹配,也就是匹配最右边的单引号,匹配第三个单引号。因此,上面等价于
'and name =\'',或者 'and name ="',
5、能不能拼接成功,最简单的办法是select出来看一下。
mysql 特殊字符的更多相关文章
- MySQL特殊字符的转义处理
出现问题以及问题分析 这条语句会把user_name不为空的所有记录查询出来 select * from user where user_name like concat('%','_','%') 分 ...
- Mysql数据库防SQL注入原理
每个语言都有自己的数据库框架或库,无论是哪种语言,哪种库,它们在数据库防注入方面使用的技术原理无外乎下面介绍的几种方法. 一.特殊字符转义处理 Mysql特殊字符指在mysql中具有特殊含义的字符,除 ...
- 利用mysql对特殊字符和超长字符会进行截断的特性 进行存储型XSS攻击——WordPress <4.1.2 & <=4.2 存储型xss
转自:Baidu Security LabXteam http://xteam.baidu.com/?p=177 漏洞概述 本次漏洞出现两个使用不同方式截断来实现的存储型xss,一种为特殊字符截断,一 ...
- Mysql删除表名中有特殊字符的表
由于公司业务和应用的调整,之前在Mysql中的很多表都不需要了,故需要对数据库进行整理. 刚开始,我在想:不就删除一些表吗?很好解决,写个简单的脚本就可以了.我先看了数据库中有80000多个表,很 ...
- 借用mysql 或者其他数据库 处理MSSQL 2016前处理导入特殊字符
MSSQL 2016支持了utf8编码的文件,之前处理比较麻烦的bcp 方式导入特殊字符一下子就方便了. 但是之前的版本,处理起来还是有一点麻烦.这次处理使用的数据库版本是sql server 201 ...
- mysql与emoji和特殊字符
从微信登陆已经是非常普遍的登陆方式了,在数据库设计时也应该考虑相关性.一般存储open_id.图标.昵称就够了.其中昵称要特殊注意,否则可能就像这样: mysql : 1366 Incorrect s ...
- mysql 去除特殊字符和前后空白字符
mysql 去除特殊字符 update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13 ...
- mysql登录密码特殊字符处理
mysql -h 192.168.12.23 -u root -pClz_b1qYPyl6$Zu1 登录报错 mysql -h 192.168.12.23 -u root -pClz_b1qYPy ...
- php中 mysql 插入特殊字符(手机端的emoji表情)出现异常
今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误. 最终在网上查了一下,有 ...
随机推荐
- ectouch第九讲 之ectouch 开始调试模式方法
ectouch 开始调试模式方法 原文: http://my.oschina.net/u/1036767/blog/407067页面报错对于发现编程过程中的问题很重要,所以在开发之前要先搞定它,免得出 ...
- The C++ Standard Library --- A Tutorial Reference 读书笔记
5.2 Smart Pointer(智能指针) shared_ptr的aliasing构造函数,接受一个shared pointer和一个raw pointer.它允许你掌握一个事实:某对象拥有另一个 ...
- java 面试每日一题7
题目:判断101-200之间有多少个素数,并输出所有素数. 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. public cla ...
- 杭电1005-Number Sequence
问题描述 A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2) ...
- CentOS 5/6.X 使用 EPEL YUM源
参考:http://www.linuxidc.com/Linux/2013-08/88523.htm 大纲 一.什么是EPEL? 二.与163 YUM源比较 三.CentOS 5.X 安装使用EPEL ...
- ByteBuffer解析
一.前言 前一篇文章我们介绍了Android中直播视频技术的基础大纲知识,这里就开始一一讲解各个知识点,首先主要来看一下视频直播中的一个重要的基础核心类:ByteBuffer,这个类看上去都知道了,是 ...
- Hibernate体系结构的简单介绍
Hibernate体系结构的简单介绍 1.SessionFactory: 单个数据库映射关系经过编译后的内存镜像,是线程安全的.它是生产Session的工厂,本身需要依赖于ConnectionPeov ...
- iOS framework
(一),lipo 命令 1)合并文件: lipo -create xxxX/liblibsql.a xxxx/liblibsql.a -output libsql.a 2)查看Framework 对C ...
- Python3基础 count 返回指定元素在列表中的个数
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- SqlSever基础 两个条件 group by 分组显示
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...