MySQL中动态生成多条件查询语句
来源:互联网 发布:ummy破解版for mac 编辑:程序博客网 时间:2024/06/05 05:34
MySQL中动态生成多条件查询语句
在做搜索页面时,我们经常会遇到多条件查询,且这些条件是不定的,也就是说当用户输入的条件参数为空时,该条件是不应该加到SQL语句中去的。举例来说,我们要对一个产品表product进行搜索,可能的条件是这样的:1、价格为100;2、产品名包含关键字p,写成条件就是WHERE price = 100 AND name LIKE '%p%',问题是这里的100和关键字p都是用户进行的选择或输入,当用户并没有选择或输入其中的一项时,该项的过滤条件也就不应当存在,这样我们在页面中就需要进行逻辑判断,当条件越多,if语句也就出现得越多,页面中就出现了大量的组合SQL语句的逻辑,这显然增加了写程序的工作量以及维护代码的难度。
解决方案:将这类复杂的查询SQL语句(说它复杂,是因为需求多变,可能查询的字段不同,可能需要联合几个表进行查询,可能排序规则不同)先写成模板放入专门的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语句的工作了)。
上一篇:主从服务器上的命令,及状态信息
下一篇:Linux 查看连接数命令
- MyBatis 入门(四)--链表查询...
- MyBatis 入门(五)--分页查询(...
- hive 连接客户端 SQuirrel SQ...
- MyBatis 入门(五)--分页查询(...
- QEMU源码分析系列(二)
- python 多进程之管道实例(模...
- 解决mysql“Access denied for...
- MySQL数据插入、修改、删除...
- mysql启动的四种方式
- 【原创】PostgreSQL 实现MySQL...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
- MySQL中动态生成多条件查询语句
- MySQL中动态生成多条件查询语句
- 动态生成多条件查询语句
- 存储过程生成动态条件查询语句
- MySQL中根据if标签实现多条件模糊查询(动态SQL语句)
- MySQL多条件查询语句
- MyBatis中动态SQL语句完成多条件查询
- MyBatis中动态SQL语句完成多条件查询
- oracle 查询语句根据参数值来动态生成条件
- Jfinal适用于条件查询的动态SQL语句生成工具
- 查询条件解析类,生成查询语句的查询条件
- hibernate常用查询语句动态生成类(包括条件和无条件查询)
- Mybatis中动态sql(多条件查询)
- 多条件查询语句
- MySQL中使用case when 语句实现多条件查询的方法
- mybatis中mysql多条件查询
- 动态生成SQL查询条件定制表单及语句的脚本
- 使用Python读取TestTrack记录- Part3 动态生成Linq to xml查询语句筛选条件
- mysql主从备份Slave_IO_Running:No的解决方法
- 反射机制
- android drawable shape 的参数 和属性
- MFC CDialog
- 主从服务器上的命令,及状态信息
- MySQL中动态生成多条件查询语句
- python math 常用的数学函数
- Linux 查看连接数命令
- C_SVC和V_SVC
- POJ 1386 Play on Words
- 中国电信i无忧手机置换保碎屏保专家保简述
- 仿淘宝、京东首页图片广告垂直滑动
- mysql 语句case when
- mysql常用show语句