zoukankan      html  css  js  c++  java
  • mysql小结

    一定记得,在sql中,筛选出需要的数据,永远比筛选掉不需要的数据好筛选的多

    就是,当需要筛选出同时满足一个表中的两个字段的两个条件的数据,就不能筛选掉不需要的数据,需要筛选出自己需要的数据,

    将不需要的数据排除在外。

    例如:

    昨天做的一个需求,在服务商的申请结算的单据表中,应为需要数据备份,所以需要筛选掉当fm.audit_state=1 && fm.exception_second_submit=1的数据,

    fm.exception_second_submit=1 这个筛选条件是二次审核提交的状态

    这样的话,想着去筛选掉这条数据就不现实

    写where语句

    where fm.audit_state!=1 and fm.exception_second_submit!=1

    这样的话就会把正在审核的单据过滤掉,直接写

    where fm.exception_second_submit!=1

    的话也不行,fm.exception_second_submit=1 这个筛选条件是二次审核提交的状态,所以直接 !=1进行过滤的话,会把二次提交的也过滤掉

    所以直接通过过滤出需要的数据的方法才能实现

    sql写法为:

           where fm.settlement_id = #{settlementId,jdbcType=INTEGER}
            and ((fm.AUDIT_STATE in (1,2,3,4) and fm.exception_second_settlement is null ) or
            (fm.AUDIT_STATE in (1,2,3,4) and (fm.exception_second_settlement in (2,3))))

    过滤出 fm.AUDIT_STATE 为状态  (1,2,3,4) ,(fm.exception_second_settlement in (2,3)的数据

  • 相关阅读:
    DevOps
    DevOps
    DevOps 教程
    Java 文件
    Java 包装类
    Java HashMap
    Java 包装类
    Java 文件
    Java ArrayList
    Java 日期与时间
  • 原文地址:https://www.cnblogs.com/huanghuanghui/p/9321643.html
Copyright © 2011-2022 走看看