我在我的batis上有一个动态查询,我需要转义%符号。
这是我的查询的一部分(我尝试了很多不同的组合)
<choose>
<!-- Titulo -->
<when test="titulo != null">
lower(p.titulo) like '%'||\||#{titulo}||'%' ESCAPE '\'
这就是我需要的:
select * from publicaciones where titulo like '%/%%' escape '/'; //this works perfect in oracle.
mybatis中该查询的正确语法是什么?
答案 0 :(得分:0)
假设我想写下一个查询:
select * from employees where emp_id < 100
<
导致问题
您有2个选择:
最简单的方法是使用你想要的字符的ASCII码。
它的ASCII值为60(您可以在here或任何其他ASCII表中查找它。)
所以更换'&lt;'将是:'&amp;#(ASCII_VALUE);'这是'&lt;'
然后我会写下一个查询:
select * from employees where emp_id < 100
另一种选择是使用CDATA,如here所示 `
<statement id="SelectPersonsByAge" parameterClass="int" resultClass="Person">
<![CDATA[
SELECT * FROM PERSON WHERE AGE > #value#
]]>
</statement>`