举个简单例子来说,我们有个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语句是处理多查询的极好方法。
没有评论:
发表评论