sql系统关键字转义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql系统关键字转义相关的知识,希望对你有一定的参考价值。

参考技术A 经评论区朋友的指点,此篇文章存在问题,不把SQL关键字作为字段名才是解决问题的关键。
单独针对mysql,可以使用反引号,即`
对于oracle,需要使用双引号加大写,即"KEY"这种,或者直接不加任何符号,不能使用单引号,不然会出现评论区兄弟说的那种情况,即查询结果的字段是返回'key'这种形式。
sql使用单引号

查询见截图,下面返回的查询结果中返回的字段名带有单引号:

查询结果中应该不带单引号的。
所以为了兼顾mysql和oralce,最好的办法是修改字段名,不要涉及sql系统关键字和特殊字段。

在mybatis的xml配置中有如下sql语句:

上述配置,在mysql中会报错

提示有语法错误, key value为msyql系统关键字,解决方法可以是可以用反引号,如下

这样做在mysql中是可以的,不过在oracle中使用反引号会报错
上述mybatis配置中的sql在oracle中执行是没问题的,
所以为了sql在mysql和oracle中都能执行,使用单引号更改sql语句,改完如下:

这样在mysql和oracle中都可以执行了。

sql server 转义字符

oracle 中的转义字符是反斜杠 \

sql server 中的转义字符是单引号 ‘

例如:

1  insert into table1 values(‘001‘)

2 insert into table values(‘‘‘001‘)

上面第一个sql语句插入的value是001

第二个sql 语句插入的是 ‘001

 

以上是关于sql系统关键字转义的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中转义字符怎么写

mysql中的sql语句存在关键字怎么办?

如何处理sql中的关键字(例如',%)

Derby SQL 时间戳算术和 JDBC 转义语法

SQL中的escape的用法

XML转义--SQL函数