Mybatis 中在xxx.mapper書寫模糊查詢


1.在mybatis中,書寫sql,有時候會有一些不細心,如:

  1. <!-- 首頁商品 關鍵字搜索-->
  2. < select id="getGoodsByLikeTitle" resultMap="BaseResultMap">
  3. SELECT
  4. <!-- 詳情 -->
  5. gd.pay_price,
  6. gd.id,
  7. gd.couponamount,
  8. gd.sale_point,
  9. gd.earn_point,
  10. gd.stock_quantity,
  11. gd.site_id,
  12. gd.vip_level,
  13. <!-- 商品 -->
  14. g.id AS 'goodId',
  15. g.title AS 'goodTitle',
  16. g.img_url AS 'goodImgUrl',
  17. g.sale_price AS 'goodSalePrice',
  18. g.sale_count AS 'goodSaleCount',
  19. g.link_url AS 'goodLinkUrl',
  20. g.tags AS 'goodTags',
  21. g.summary AS 'goodSummary',
  22. g.series_no AS 'goodSeriesNo',
  23. g.spec_desc AS 'goodSpecDesc',
  24. g.weight AS 'goodWeight',
  25. g.add_time AS 'goodAddTime'
  26. FROM goods_detail AS gd
  27. INNER JOIN goods AS g
  28. ON gd.goods_id=g.id
  29. WHERE g.satus=1
  30. AND gd.site_id=#{siteId}
  31. AND g.title like CONCAT('%',#{wkeyword},'%')
  32. ORDER BY g.add_time DESC
  33. </ select>

如果上述中的sql like 后面用的是'%${wkeyword}%',看似沒有錯,但你在調用時輸入“ ` ”引號間的符號,sql 就無法識別,即會報錯。如果用CONCAT('%',#{wkeyword},'%') 來替代'%${wkeyword}%',則萬事大吉。具體這個是怎樣一個原理不是太清楚,看了很多文檔都說是#{}與${}的不同,自己積累一下,避免后期遇到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM