欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多条件查询用到的SQL

程序员文章站 2022-06-11 13:11:27
...

    在做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语句是处理多查询的极好方法。

相关标签: mysql