php - 如果用户在该字段中提供了数据,则在 SQL 查询中放入 IF 语句

标签 php mysql sql pdo

我有一个 SQL 查询,其中输入是由用户通过搜索表单生成的。我现在拥有的是这个。

// Select some data
$sth = $dbh->prepare("SELECT `id`, `type_code`, `connector_type`, `construction_type`,  `author`, `estimate_lead_time`, `last_update`, `confidence_level`, `start_passband`, `stop_passband`, `low_passband`, `high_passband` 
                      FROM `filter_bandpass` 
                      WHERE (`start_passband` = $lowfreq AND `stop_passband` = $highfreq)");

我试图让它允许用户只填写 $lowfreq并留下$highfreq空白,结果将显示 $lowfreq = 的所有结果用户插入的数据,但是当他们输入 $highfreq 的金额时结果显示了两者。

最佳答案

因此 $highfreq 要么包含数据,要么为空。然后简单地替换

WHERE (`start_passband` = $lowfreq AND `stop_passband` = $highfreq)");

WHERE (`start_passband` = $lowfreq AND (`stop_passband` = $highfreq OR $highfreq = ''))");

关于php - 如果用户在该字段中提供了数据,则在 SQL 查询中放入 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25683250/

相关文章:

sql - GraphQL 会生成实际的 SQL 查询吗?

sql - 选择逗号分隔的字符串是否包含值

php - Mysql 内连接/一个查询中的多个选择?

php - SQL语句多对多

mysql - 在没有文件权限和命令行访问的情况下备份 MySQL 表的最佳方法是什么?

sql - Postgres - 在基于另一列的列中设置唯一约束

php - 通过 PHP 从目录中的文件生成 XML

javascript - PHP中的Ajax上传文件

php - 实现 MySQL Transaction 生成主键并保存到 PHP 表单数据提交

mysql - 如何替换 WHERE 子句中的 WHERE IN 选择以减少请求的执行时间?