mysql函数使用

1、取到查询条件为一个字段的截取部分

		select
          a.order_no
          from t_order a
      	where
          a.deleted = 0
          and substring(a.order_no,1,8) = #{date}
      	ORDER BY
      	a.add_time desc
      	limit 1

2、字段逗号隔开的函数使用find_in_set,获取根据字典查询的名称拼接

/**
 * 1.获取当前阶段名称
 */
inspectTitleCustomerTemp.setCurrentPhaseLabel(dictItemMapper.selectItemLabelsStr(new DictItemLabelsStrDto("dqjd","t_inspect_title_customer","current_phase",id)));


select
			GROUP_CONCAT(b.item_label) str
		from
			${tableName} a
		left join t_dict_item b
		left join t_dict c
		on b.dict_id = c.id
		on FIND_IN_SET(b.item_value,a.${tableField})
		where c.dict_key = #{dictKey}
		and a.id = #{id}

3、根据多个条件分组,和排序

	GROUP BY
        a.id,
        c.id
 	ORDER BY
        c.edit_time DESC,
        d.edit_time DESC

4、模糊查询一个list集合多个条件查询一个逗号拼接的字段

<if test="search.currentPhase != null and search.currentPhase.size > 0">
            <foreach collection="search.currentPhase" item="item" index="index" open="" separator="" close="">
                and t.current_phase like '%${item}%'
            </foreach>
        </if>

5、使用函数获取比较时间段大小

获取时间加上五年大于现在时间减去三个月
DATE_ADD( a.last_yearly_inspect_date,  INTERVAL 5 YEAR ) > DATE_SUB(NOW( ),INTERVAL 3 MONTH )

6、COALESCE关键字的使用
COALESCE是sql标准里面的一个关键字,我们可以和聚合函数sum,count,max等一起使用完成一些特殊的功能。

1、查询某一个列总和,如果没有数据或者NULL返回0
表字段中有一个字段:公里数(f_gls),统计总的公里数
COALESCE (sum(f_gls), 0) distance
2、查出最大值

表字段中有一个字段:模块id(f_moudleId),查询最大值

COALESCE(MAX(f_moudleId),0) max_moudleId
 

3、综合使用:格式化

根据知识库表里面的记录,生成下一条知识库id

SELECT
CONCAT('KB',DATE_FORMAT(NOW(),'%Y%m%d'),LPAD(COALESCE(COUNT(id),0)+1, 3, '0')) 
FROM
user_knowledgebase
WHERE
DATEDIFF(DATE(now()), DATE(createtime))= 0

7、sql根据查询顺序返回结果

SELECT id,autonum FROM program WHERE autonum IN (202000016,202001072) order by FIELD(autonum,202000016,202001072);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值