简单解析两节Mybatis的SQL语句段

代码一

replace(
        GROUP_CONCAT(DISTINCT name),
        ',',
        '&'
        ) 

这里需要分开解析观察,首先你能拆分成几个点。

  • replace
  • GROUP_CONCAT
  • &
  1. replace
语法:replace(object,search,replace)
 
意思:把object中出现search的全部替换为replace

备注:replace相当于update,而不是delete然后insert
  1. GROUP_CONCAT
语法: GROUP_CONCAT(object)
 
意思:把object进行改造

备注:一般为 DISTINCT  object,意思是将object去重。

3.&

&是mybatis中的特殊字符,意思就是相当于 &

综上所述:综合得出含义为:
这段代码不会独立出现,而是镶嵌在代码中间,你应该找到对应数据库,然后将name去重,并且将name中的,全部转为&。

代码二

<where>
     <if test="Name != null and Name != ''">
         ti.name like CONCAT('%',#{Name},'%')  //参数拼接
     </if>
     <if test="state == 1">
         and DATE_FORMAT(NOW(), '%Y-%m-%d') &gt;= ti.start_time   //&gt;大于号    过滤时间的用处。
         and DATE_FORMAT(NOW(), '%Y-%m-%d') &lt; DATE_FORMAT(DATE_ADD(ti.end_time,INTERVAL 1 DAY),'%Y-%m-%d')
     </if>
     and ti.state !='D'
</where>

同理可得:拆分研究

  • CONCAT
  • DATE_FORMAT
  • &gt ;
  • &lt ;
  1. CONCAT 字符串拼接。
  2. DATE_FORMAT 日期格式转换。
  3. &gt ; 等于 >
  4. &lt ; 等于 <
    用来进行时间过滤的作用。获取当前时间之前或者之后的时间过滤。

版权声明:本文为hyfsbxg原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。