MYSQL 查询带有可能未设置的变量

标签 mysql

我有一个 PHP 文件,它接受七个变量,如下所示:

 $name=$_REQUEST['membername'];
 $email=$_REQUEST['email'];
 $dob=$_REQUEST['dob'];
 $gender=$_REQUEST['gender'];
 $phone=$_REQUEST['phone'];
 $county=$_REQUEST['county'];
 $IP=$_REQUEST['IP'];

其中一些不会被设置。我想要做的是构造一个查询来搜索members表,这样如果只设置了$email和$dob,它将只按$email和$dob搜索,而忽略其他。或者,如果仅设置了 $phone、$name 和 $gender,则它将仅搜索这三列。

是否有比构建一大块涵盖所有可能排列的 if isset 函数更简单的方法?

最佳答案

如果您不想搜索字段,请为参数传递 NULL 并构造 WHERE 子句,例如...

WHERE 
( (@parameter1 IS NULL) OR (column1 = @parameter1) )
AND 
( (@parameter2 IS NULL) OR (column2 = @parameter2) )

我没有花太多时间在 MYSQL 上,所以语法可能有点不对劲,但你明白了。

关于MYSQL 查询带有可能未设置的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763370/

相关文章:

php - 选择两列中不同但按一分组

php - 在表中显示 PHP 查询数组

python - 具有两个占位符的 MySQL Python 问题

php - 不知道如何将图像差异添加到 HTML 表的 php/sql 填充中

php - 通过 php 将数组参数插入 mysql

php - 将表作为变量传递以在 mysql 存储过程中循环

java - PersistenceUnitLoadingException - 创建 EntityManagerFactory 时出错

mysql - 不明确的列名错误

PHP-mysql_fetch_array 不返回任何内容

python - SQL - 替换或跳过重复条目