sql語句中,雙豎線“||”遇到的坑

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},'%')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章