mysql if函数的使用

在mysql中if()函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下:
IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,

则返回expr3的值。

mysql> select name,if(sex=0,'女','男') as sex from student;
+-------+-----+
| name  | sex |
+-------+-----+
| name1 | 女  |
| name2 | 女  |
| name3 | 男  |
| name4 | 女  |
+-------+-----+
4 rows in set (0.00 sec)

也可做条件查询:
假入传入时间不为空,则进行有效期判断
传入如果为空,则不进行判断

 <select id="queryBuyingLeadsList" resultType="com.esgov.gzwsbs.vo.companyBuyingLeads.CompanyBuyingLeadsVo" >
        select
        c.id as id,
        c.title as title,
        c.industry_type as industryType,
        c.industry_name as industryName,
        c.details as details,
        c.begin_effective_time as beginEffectiveTime,
        c.end_effective_time as endEffectiveTime,
        c.telephone as telephone,
        c.creater_time as createrTime,
        c.update_time as updateTime,
        e.enterprise_name as enterpriseName
        from  company_buying_leads c
        left  join  enterprise_info_all e on e.id=c.enterprise_id
        where c.record_status='1'
        <if test="industryType !=null and industryType !='' ">
            and industry_type like concat('%',#{industryType},'%')
        </if>
        <!--如果时间不为空则过滤掉不在有效期的-->
        and
        if(c.begin_effective_time is NOT NULL, (date_format(#{thisDay},'%y-%m-%d')   &gt;= date_format(c.begin_effective_time,'%y-%m-%d')),1=1)
        and
        if(c.end_effective_time is NOT NULL ,(date_format(#{thisDay},'%y-%m-%d') &lt;= date_format(c.end_effective_time,'%y-%m-%d')) ,1=1)
        order  by c.update_time desc
    </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值