SQL语句中转义字符怎么写?
两种比较常见的方式 :1.用中括号[ ]转义。 2.用关键字ESCAPE 转义。
延展知识:
用中括号[]转义 。
例子:WHERE ColumnA LIKE 'aaa[_]bbb' --- .
用关键字ESCAPE 转义。
例子:WHERE ColumnA LIKE '%aaa/%bbb%' ESCAPE '/'.
1)方式2不如1方便,适用面也窄小,清晰度也差。
2)方式0在使用动态SQL,尤其是“嵌套 + 代码生成”的高级应用中,很容易出错。
举例说明:
错误语句:select * from table_base where flag_topic & #{topic_num} .
错误信息:Caused by: org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 54; The entity name must immediately follow the '&' in the entity reference.
正确语句: select * from table_base where flag_topic & #{topic_num}.
特殊转义:单引号 -- 用2个单引号''
两种比较常见的方式
(1)用中括号[]转义
WHERE ColumnA LIKE 'aaa[_]bbb' ---
(2)用关键字ESCAPE 转义
WHERE ColumnA LIKE '%aaa/%bbb%' ESCAPE '/'
注:
1)方式2不如1方便,适用面也窄小,清晰度也差。
2)方式0在使用动态SQL,尤其是“嵌套 + 代码生成”的高级应用中,很容易出错
今天上网查了一下,经过测试,其实SQL语句中转义字符很简单。
以下是两种比较常见的方式:
第一:用中括号[]转义
WHERE ColumnA LIKE '9[_]5'。
第二:用关键字ESCAPE 转义
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'。