前言
小编觉得这个问题虽然不难,但是还是需要做个记号,希望能帮助到其他小伙伴,能够知道怎么解决。
问题描述
我在编写mapper.xml层的sql语句时,遇到了如下问题,在写针对Oracle数据库的sql语句,想做分页的时候,使用 rownum 对数据进行分页处理时遇到的问题如下图所示:
解决方案
检查语法上面觉得没什么错,就很奇怪,然后各种百度,发现需要将对应的<符号,以转义字符的形式写出。如下所示:改为 < 就不会报错,成功解决。
sql中特殊转义字符说明
在 SQL 中,特定的字符可能具有特殊的含义或功能。例如,单引号 '
用于表示字符串的起始和结束,双引号 "
用于标识对象名称,百分号 %
和下划线 _
用于模式匹配等。当我们想要在 SQL 语句中使用这些特殊字符本身时,需要使用转义字符将其进行转义。
通过转义字符,我们可以告诉数据库解析器,某个特殊字符不应该被解释为其原有的含义,而应该被当做普通字符对待。例如,在 SQL 字符串中,如果我们需要包含一个单引号字符本身,而不是将其视为字符串的起始或结束标记,那么我们需要使用两个连续的单引号 ''
来进行转义。
转义字符的引入是为了确保 SQL 解析器可以正确地识别和处理特殊字符,并保持 SQL 语句的一致性和完整性。此外,它还有助于预防一些安全问题,如 SQL 注入攻击。通过转义特殊字符,可以降低恶意用户注入恶意代码的风险。
因此小编在这儿整理了,关于sql编写中一些常用特殊字符需要转义字符表示的如下:只要你先正常写sql语句不报错就不需要使用转义字符,如果报上述错误就可以采用这个转义字符做处理。
< 小于符号 对应 <
> 大于符号 对应 >
& 对应 &
空格 对应
\
:反斜杠。如果你想在字符串中插入一个反斜杠,需要使用两个连续的反斜杠 \\
进行转义。
%
:百分号。在使用 LIKE 模式匹配时,如果要匹配 %
字符本身,需要将其转义为 \%
。
_
:下划线。在使用 LIKE 模式匹配时,如果要匹配 _
字符本身,需要将其转义为 \_。
到此结束啦,这只是小编在写sql遇到的小问题,有什么地方说错的地方,请大家指正,可以写在评论区,大家一起学习进步。