都使用过mybatis,都见过这样的标签sql配置:
<isNotEmpty property="PROPERTYNAME" prepend="AND ">
(T1.PROPERTY_NAME like '%'|| #PROPERTYNAME# ||'%'
OR T1.BUILDING_NAME like '%'|| #PROPERTYNAME# ||'%'
OR T1.FLOOR_NAME like '%'|| #PROPERTYNAME# ||'%'
OR T1.OFFICE_NAME LIKE '%'|| #PROPERTYNAME# ||'%')
</isNotEmpty>
一般来说,这样的形式,意思就是标签内部的or条件是作为一个整体的。所以一定要注意标签内容开始出的开始和结束的括号。
如果没有括号,生成的最后的SQL语句,这些条件都是独立的,当然就影响后续的查询结果了