多条件查询用到的SQL
程序员文章站
2022-06-11 13:11:27
...
在做Web开发的时候,经常会遇到这样的情形。那就是多条件查询。对很多PHP初学者都感到很棘手。
举个简单例子来说,我们有个user的用户表。用户可以在界面上输入姓名、性别、年龄来搜索用户信息。
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语句是处理多查询的极好方法。
推荐阅读
-
select-mysql 嵌套查询,一个表的多个字段 作为另一个表的条件,求高手
-
sql server 在多个数据库间快速查询 某个 表 的信息以及某个 列
-
关于关联查询sql的一次优化过程及其他
-
多个查询条件的sql语句的拼写技巧,求指点。
-
mysql数据库不能识别中文的查询条件。_MySQL
-
快速入门:使用Azure 数据 Studio进行连接和查询 Azure SQL 数据仓库中的数据
-
mysql-求助MySQL的关于sql语句怎么写??三表的查询~~~请大神进来帮忙~~~~~
-
对MySql查询缓存及SQL Server过程缓存的理解及总结_MySQL
-
sql查询的相关有关问题
-
sql脚本查询数据库表,数据,结构,约束等操作的方法