`
王之子
  • 浏览: 106269 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

多条件查询用到的SQL

阅读更多

    在做Web开发的时候,经常会遇到这样的情形。那就是多条件查询。对很多PHP初学者都感到很棘手。

    举个简单例子来说,我们有个user的用户表。用户可以在界面上输入姓名、性别、年龄来搜索用户信息。

id name sex age
1 小林 18
2 小亮 17


    我们在后台该怎么处理呢?


<?php
$name = $_POST['name'];
$sex = $_POST['sex'];
$age = $_POST['age'];
$sql = $name ? "SET @name = '$name'":"SET @name = NULL";
mysql_query($sql);
$sql = $sex ? "SET @sex = '$sex'":"SET @sex = NULL";
mysql_query($sql);
$sql = $age ? "SET @age = '$age'":"SET @age = NULL";
$sql = "SELECT * FROM user WHERE `name`=(CASE WHEN @name IS NULL THEN name ELSE @name END) 
AND `sex`=(CASE WHEN @sex IS NULL THEN sex ELSE @sex END) AND 
`age`=(CASE WHEN @age IS NULL THEN age ELSE @age END)";
$result = mysql_query($sql);
while($item = mysql_fetch_array($result)) {
//……
}
?>  

   是不是很简单呢?SQL的case语句是处理多查询的极好方法。

分享到:
评论

相关推荐

    java配合MyBatis 多条件查询及动态SQL

    MyBatis 多条件查询及动态SQL 粉丝可见 ybb_ymm 已于 2023-02-02 11:09:17 修改 642 收藏 3 分类专栏: java 文章标签: mybatis sql mysql 编辑 版权 java 专栏收录该内容 104 篇文章2 订阅 背景 MyBatis是一...

    页面传入多个条件——sql语句的拼接

    页面传进来传个条件判断的时候,要用到sql语句的拼接才能解决sql的问题,这是一个小例子。

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    它详细介绍了T-SQL的内部体系结构,包含了非常全面的编程参考,提供了使用Transact-SQL(T-SQL)的专家级指导,囊括了非常全面的编程参考,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。...

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    精通SQL--结构化查询语言详解

    10.1.1 在多表查询中使用子查询 187 10.1.2 在子查询中使用聚合函数 188 10.2 创建和使用返回多行的子查询 190 10.2.1 in子查询 190 10.2.2 in子查询实现集合交和集合差运算 191 10.2.3 exists子查询 192 ...

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    T-SQL高级查询

    排序在很多地方需要用到,需要对查询结果进行排序并且给出序号。比如: 1、 对某张表进行排序,序号需要递增不重复的 2、 对学生的成绩进行排序,得出名次,名次可以并列,但名次的序号是连续递增的 3、 在...

    GridView的过滤条件转成各个数据库Sql条件语句Demo

    关于DevExpress的GridView的过滤条件如何转成相应的语句,dev官网提供了相应的处理方法,方便开发人员调用,目前支持数据库语句有MS Sql 、Oracle 、Access,资源用到的Dev版本是18.1,为了保证能运行,相关程序集...

    SQL应用开发范例宝典:SQL应用开发范例宝典.iso (源码光盘)

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL Server中单引号的两种处理技巧

    和数据库打交道要频繁地用到SQL语句,除非你是全部用控件绑定的方式,但采用控件绑定的方式存在着灵活性差、效率低、功能弱等等缺点。因此大多数的程序员极少或较少用这种绑定的方式。而采用非绑定方式时许多程序员...

    SQL_SERVER应用与开发范例宝典_12357672.part3

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL_SERVER应用与开发范例宝典_12357672.part2

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL_SERVER应用与开发范例宝典_12357672.part1

    内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...

    SQL查询安全性及性能优化

    首先可以帮助我们查看SQL语句是否利用到索引,比如很复杂的SQL语句中有些用到索引,但是执行计划中却没有索引查找,我们就可以分析相应的原因 然后我们可以对比不同的执行计划,比如达到同样效果,两个开发人员...

    linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)

    通过研究,有了下面的方法: 首先,我们要新建一个静态类,用于存放多条件组合查询的各种组合,比如or,And这些等等.代码如下: 代码如下: using System.Linq.Expressions; public static class PredicateExtensionses { ...

    SQL查询时间大全

    整合了几乎能用到的时间查询及时间转换等,方便的为大家了解,有示例SQL语句,包括年月日等常用的时间条件

    oracle 查询当天数据的sql条件写法

    日报数据统计中会用到当天数据的查询,下列就是日期要对应的条件: between  to_date(to_char(sysdate,’yyyy-mm-dd’) || ‘ 00:00:01′,’yyyy-mm-dd hh24:mi:ss’) and to_date(to_char(sysdate,’yyyy-mm-dd’)...

    全面接触SQL语法

    SQL语法的分类 &lt;br&gt; 其实SQL命令并不是非常多,可是要把SQL用到出神入化,却也只需要短短几个命令便够,因为SQL命令是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,以下...

    sql 优化汇总 优化汇总 优化汇总

    1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以...

Global site tag (gtag.js) - Google Analytics