2016-07-16 85 views
0

我有一些問題在mapper.xml從Spring框架在mysql Spring框架MySQLSyntaxErrorException

它失敗:

檢查,以接近使用對應於你的MySQL服務器版本正確的語法手冊'where ut.catalog_id = 1 and ut.title like CONCAT('%','d','%')'第4行

代碼:

<select id="tListSearch" resultType="TalentBoardVO"> 
    select * 
    from user_talents ut 
    left outer join catalog c 
    on ut.catalog_id = c.id 

    <include refid="search"></include> 

    order by ut.id desc 
    limit #{pageStart}, #{perPageNum} 
</select> 

這是inclue標籤

<sql id="search"> 
    <if test="searchType != null"> 

     <if test="searchType == 'g'.toString()"> 
      where ut.catalog_id = 1 
      and ut.title like CONCAT('%', #{keyword}, '%') 
     </if> 

回答

0

這將是更好的,如果你能告訴我們你的整個SQL查詢。

如果您使用的是MyBatis框架,這是您可以做的。 好的做法是,你應該分開你想在WHERE語句中比較的2個變量。

<sql id ="search"> 
    <where> 
     <if test ="idCatalog" != null"> 
      AND ut.catalog_id = #{idCatalog} 
     </if> 
     <if test="searchType != null"> 
      <bind name="searchTypeLike" value="'%' + searchType + '%'" /> 
      AND ut.title LIKE #{searchTypeLike} 
     </if> 
    </where> 
</sql>