1.業務背景
以前的一個項目是用oracle做的,現在改成maria數據庫,orm用的是mybatis
2.遇到的問題
本以爲換個數據庫只要改些配置就行了,沒想到遇到一個like語句的問題,無論條件傳入什麼,返回的是全部的值
sql是這樣寫的
<if test="name!= null and name!= ''">
and name like '%'||#{name}||'%'
</if>
3.調查結果
原來雙豎線“||”在oracle裏的意思是連接多個字符,而在mysql和maria中是“或”的意思。所以以後寫sql的時候還是要用標準的sql語句來寫,或者調用函數的方式,比如name like CONCAT( '%',#{name},'%')