多条件and查询遇到的问题

问题描述:如下图所示:

在做多条件and查询时会遇到这种情况,因为是第一次做这个查询功能,所以没有想那么深,很自然地用了

select * from table where 字段1=“${}” and 字段2 = “${}” and 字段3 = “${}”.......
//${}表示输入框中输入的值,只是一种表示

在测试时就发生了问题,当把查询条件全部输入值时才能查到数据,当没有全部输入值时就查不到数据。后来想了一下,多个and连接查询,查询到的数据是需要全部满足这些and条件的,当在查询界面没有全部输入查询值时,在sql层面就表现为:字段 = null 或字段 = “ ”,而在数据表中是没有这些数据存在的,所以最终的结果就是查不到数据。

后来想了一下,要完成这个功能需要做的就是当and条件的输入值为空时,就让这个and条件失效,从而不对其他and条件查询产生影响。所以小编就在and条件失效这个路子上走了好久,在网上搜了许多有关的解决思路。但碍于小编目前水平有限,大段sql我有点看不懂,所以也无法直接套用。

后来转换了思路,之前一直想的是值为空时让所属的and条件语句失效,但其实最终的目的是当该and条件值为空时不对其他and条件查询产生影响。可以在每个and条件里加个or,使每个and条件分为两种情况,值为空和值非空
如下:

select * from nych_fxjy where 1=1
and ('${创建人}' = '' or create_user = '${创建人}')
and ('${创建时间}' = '' or create_time like '${创建时间}%')
and ('${责任部门}' = '' or responsibility_depart = '${责任部门}')
and ('${风险机遇类型}' = '' or riskOrOppor_Type = '${风险机遇类型}')
and ('${风险机遇描述}' = '' or riskOrOppor_descripition like '%${风险机遇描述}%')

这样一来,当传入的值为空时,该and条件查询对其他and条件查询是不产生影响的。

多条件and查询遇到的问题相关推荐

  1. 多条件组合查询+分页

    比较麻烦,把他记录下来. 前台UI: 实现的类代码: 程序代码 /// <summary>         /// 多条件组合查询         /// </summary> ...

  2. 实现多条件模糊查询SQL语句

    很多网友问到如何写模糊查询语句和多条件查询,这里我整理了一下,假设以姓名.性别.电话号...作为数据库中的字段名. 通常写一个简单的模糊查询的SQL语句格式可以如下例: sql="selec ...

  3. mysql 非等值条件 索引_mysql 索引学习--多条件等值查询,顺序不同也能应用联合索引啦...

    以前学习这一块的时候,是说:假设建立了联合索引a+b,那么查询语句也一定要是这个顺序才能应用该索引. 那么实际是怎样呢,经过mysql这么多次版本升级,相信mysql已经给我们做了某些优化. 下面是我 ...

  4. mongoose多条件模糊查询实例

    mongoose多条件模糊查询 这是今天手头项目中遇到的一个问题,关于mongoose如何实现类似于SQL中 nick LIKE '%keyword%' or email LIKE '%keyword ...

  5. mysql 连接查询两个条件_MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习...

    一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不可能把所有的数据都放到一张表里面,肯定要分表来存数据,这样节 ...

  6. MySQL复合条件连接查询

    复合条件连接查询 就是在连接查询的过程中,通过添加过滤条件来限制查询结果,使查询结果更加精确 在department表和employee表之间,使用内连接查询,并且,将查询结果按照年龄从小到大排序

  7. 36、Power Query-多条件合并查询

    本节要点:Power Query-多条件合并查询 之前我们学过两表合并,多表追加,但要同时满足多个条件的表表合并,我们如何实现呢? 我们先看下面一个例子: 左表是产品对应等级的销售数量,而右表示产品对 ...

  8. MyBatisPlus3.x中使用条件构造器查询某一天的记录数时的日期格式化注意

    场景 前端传过来时间,比如是'2019-05-09' 后台使用条件构造器查询数据库中某一天的记录数. 因为涉及到时间格式的问题,如果直接用时间字段是否相等来判断则不行.所以这里使用MyBatisPlu ...

  9. WINFORM 多条件动态查询 通用代码的设计与实现

    经常碰到多条件联合查询的问题,以前的习惯认为很简单总会从头开始设计布局代码,往往一个查询面要费上老半天的功夫,而效果也不咋地.     前段时间做了个相对通用的多条件动态查询面,复用起来还是挺方便的, ...

  10. Mybatis传入参数类型为ListIntergert作为条件进行查询

    Mybatis传入参数类型为List作为条件进行查询 higher2017关注 2017.02.07 10:23:16字数 130阅读 5,658 表结构: 表名称为constant 需求: 现在想查 ...

最新文章

  1. vue结合Promise及async实现高效开发。
  2. Python 删除文件与文件夹
  3. UE3客户端加入DS过程
  4. C语言变量初始化是必须的吗?不初始化会怎样?
  5. bootstrap 数据加载中提示_解决Quartz定时器中查询懒加载数据no session的问题
  6. 4 开发MapReduce应用程序
  7. 肖仰华 | 知识图谱研究的回顾与展望
  8. 一文读懂云计算和PAYG“现付现用”模型
  9. eclipse-java-2019-12-R-win32-x86_64分享
  10. python解一元三次方程_python/sympy求解矩阵方程的方法
  11. 蒙太奇经典例子_剧本中如何写好蒙太奇?这15个硬核案例告诉你!
  12. 帝豪gl车机系统降级_美好的陪伴、舒心的用车,帝豪GL,32000公里用车有感
  13. Hibernate二级缓存
  14. 解决Ubuntu显卡驱动的问题
  15. [模拟]JZOJ 2499 东风谷早苗
  16. 高并发场景以及应对技巧
  17. 传奇手游服务器搭建_如何架设一个传奇手游?需要那些东西?
  18. 利用k8s集群部署第一个容器化应用
  19. 按键精灵--函数的介绍
  20. 将头像、文字和二维码三部分,合成一张宣传图片

热门文章

  1. sql中join类型_SQL Join类型概述和教程
  2. aws rds监控慢sql_估算AWS RDS SQL Server成本
  3. @sql 单元测试_10个最常见SQL单元测试错误
  4. mercurial使用_DBA对Mercurial的介绍–什么时候以及为什么我们应该使用版本控制
  5. 淘宝flexible.js的使用
  6. Vue教程:简介(一)
  7. Allegro导入DXF
  8. Spring MVC之cookies跟session 数据绑定
  9. 支付弹出窗口被拦截解决办法
  10. 设置mysql允许外网访问