美文网首页
mysql动态多条件查询

mysql动态多条件查询

作者: 偷了月光的猫 | 来源:发表于2019-11-21 09:37 被阅读0次

在做搜索时,经常会遇到多条件查询,且这些条件是不定的,也就是说当用户输入的条件参数为空时,该条件是不应该加到SQL语句中去的。举例来说,我们要对一个东西进行搜索,可能的条件是这样的:1、价格为100;2、产品名包含关键字p,写成条件就是WHERE price = 100 AND name LIKE '%p%',问题是这里的100和关键字p都是用户进行的选择或输入,当用户并没有选择或输入其中的一项时,该项的过滤条件也就不应当存在,这样我们在页面中就需要进行逻辑判断,当条件越多,if语句也就出现得越多,页面中就出现了大量的组合SQL语句的逻辑,这显然增加了写程序的工作量以及维护代码的难度。

        解决方案:将这类复杂的查询语句(不怕麻烦,有2**n个select要写)先写成模板放入专门的SQL模板文件中,针对MySQL,上面提到的问题涉及到的SQL模板语句如下:

SELECT * FROM product WHERE price = IF('{0}' = '', price, '{0}') AND name LIKE IF('{1}' = '', name, '%{1}%') 

这里的price和name分别为产品表中的两个字段名,{}标志位是我们要将参数替换进去的地方,这样在查询页面只需调用SQL模板语句,并替换相应的参数即可。(假设用户没有过滤价格,则{0}为空,那么得到的SQL语句类似于:SELECT * FROM product WHERE price = price AND name LIKE 'p',其中price = price就起到了不进行过滤的作用,这样就达到了动态生成多条件查询语句的目的,页面中也就不需要进行繁琐的组合SQL语句的工作了)。

相关文章

  • mysql动态多条件查询

    在做搜索时,经常会遇到多条件查询,且这些条件是不定的,也就是说当用户输入的条件参数为空时,该条件是不应该加到SQL...

  • MySQL--基础二

    本节总结MySQL的筛选条件,聚合与分组,子查询,连接查询。 MySQL的筛选条件 MySQL中的比较运算符: 比...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • MySql的查询总结

    Num01-->mysql基本查询 Num02-->mysql条件查询 Num03-->mysql聚合函数 Num...

  • MySql查询-条件查询

    使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: where后面支持多种运算符,...

  • 单表的 CURD 操作(第四讲)

    动态 SQL 动态 SQL ,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提...

  • spring jpa 动态查询

    在业务中需要动态查询,多方查询之后感觉还可以.简单的动态查询 代码如下 mysql 的find_in_set也是很...

  • mysql 条件查询

    语法 select 查询列表 from 表名 where 筛选条件; 比较运算符>、< 、>=、<=、= 、<>大...

  • mysql条件查询

    进阶2:条件查询 /* 语法:select查询列表from表名where筛选条件; 分类:一、按条件表达式筛选 *...

  • 数据库操作

    2019年12月10日 mysql -uroot -pwy123456 一.查询: 1.有条件查询 2.无条件查询...

网友评论

      本文标题:mysql动态多条件查询

      本文链接:https://www.haomeiwen.com/subject/nwusyqtx.html