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 特殊字符的更多相关文章

  1. MySQL特殊字符的转义处理

    出现问题以及问题分析 这条语句会把user_name不为空的所有记录查询出来 select * from user where user_name like concat('%','_','%') 分 ...

  2. Mysql数据库防SQL注入原理

    每个语言都有自己的数据库框架或库,无论是哪种语言,哪种库,它们在数据库防注入方面使用的技术原理无外乎下面介绍的几种方法. 一.特殊字符转义处理 Mysql特殊字符指在mysql中具有特殊含义的字符,除 ...

  3. 利用mysql对特殊字符和超长字符会进行截断的特性 进行存储型XSS攻击——WordPress <4.1.2 & <=4.2 存储型xss

    转自:Baidu Security LabXteam http://xteam.baidu.com/?p=177 漏洞概述 本次漏洞出现两个使用不同方式截断来实现的存储型xss,一种为特殊字符截断,一 ...

  4. Mysql删除表名中有特殊字符的表

    由于公司业务和应用的调整,之前在Mysql中的很多表都不需要了,故需要对数据库进行整理.   刚开始,我在想:不就删除一些表吗?很好解决,写个简单的脚本就可以了.我先看了数据库中有80000多个表,很 ...

  5. 借用mysql 或者其他数据库 处理MSSQL 2016前处理导入特殊字符

    MSSQL 2016支持了utf8编码的文件,之前处理比较麻烦的bcp 方式导入特殊字符一下子就方便了. 但是之前的版本,处理起来还是有一点麻烦.这次处理使用的数据库版本是sql server 201 ...

  6. mysql与emoji和特殊字符

    从微信登陆已经是非常普遍的登陆方式了,在数据库设计时也应该考虑相关性.一般存储open_id.图标.昵称就够了.其中昵称要特殊注意,否则可能就像这样: mysql : 1366 Incorrect s ...

  7. mysql 去除特殊字符和前后空白字符

    mysql 去除特殊字符 update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13 ...

  8. mysql登录密码特殊字符处理

    mysql -h 192.168.12.23 -u root  -pClz_b1qYPyl6$Zu1 登录报错 mysql -h 192.168.12.23 -u root  -pClz_b1qYPy ...

  9. php中 mysql 插入特殊字符(手机端的emoji表情)出现异常

    今天在用mysql存储从微信服务器拉来的数据,出现插入数据异常,报 Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F 的错误. 最终在网上查了一下,有 ...

随机推荐

  1. dirname和basename命令

    dirname返回文件所在目录路径,而basename则相反,去掉路径返回最后的文件名. dirname指令 1.功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目 ...

  2. Oracle 11gR2中启动Scott用户的方法

    Oracle 中启动 Scott 用户 的方法 , 在 Oracle11gR2, (g 代表‘网络’的意思) 数据库中 Scott 这个用户 安装时是被锁定的,安装 Oracle的时候 ,你可以直接选 ...

  3. hbase 停止regionserver

    每个regionserver节点可以自由启动或停止,可以不随hbase整体一起. 停止后regionserver上的数据会被移到其他regionserver上,不影响hbase的使用.   停止reg ...

  4. jqeury之轮播图

    $(document).ready(function(){ var sWidth = $('#pic1').width(); var len = $('#pic1 .sildebar li').len ...

  5. 山东理工大学第七届ACM校赛-经济节约 分类: 比赛 2015-06-26 10:34 19人阅读 评论(0) 收藏

    经济节约 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 由于经济紧张,某国国王决定减少一部分多余的士兵,这些士兵在边界都有各自的 ...

  6. windows下UDP服务器和客户端的实现

      UDP是面向非连接的协议,因此在实现UDP服务器时,服务器不用总是处于监听状态.可以直接收发数据.   服务器端   1.初始化 WASStartup ( ... )   2.创建Socket s ...

  7. 网页撤销后ubuntu本地撤销

    git reset --hard <commit_id> 回到上一个commit: 之后再    git reset --hard :

  8. 项目文件中含有两个config文件,app.config与app1.config,如何获取app1.config中的配置

    想要通过配置文件配置C#前台画面,好奇做了以下测试:在项目中新建了app.config与app1.config两个配置文件,请教一下各位高手如果想从app1.config中读取配置信息应该如何读取?采 ...

  9. 切分vocab时遇到的问题

    vocab的格式如下所示,每个词和对应100维的向量: </s> 0.004003 0.004419 -0.003830 -0.003278 0.001367 0.003021 0.000 ...

  10. fullPage.js

    https://github.com/alvarotrigo/fullPage.js  下载地址 demo:http://pan.baidu.com/s/1o8QWCmm 演示:http://full ...