MySQL Multi Query - 构建额外的 SQL 参数

标签 mysql append mysqli-multi-query

我有以下代码:

$query  .= "SELECT COUNT( ". $r ." ) AS Total, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=750) AS Eng, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=450 AND ". $r ." <=749) AS Pas, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." <=449) AS Dis
FROM  tresults;";

这是一个多重查询,使用 PHP,我可以查看多个实例并拉回数据 - 这很好。

但是,我需要能够根据用户从下拉菜单中输入的内容轻松地将其他参数添加到 SQL 查询中。

例如,用户可能从下拉列表中选择一个选项,然后需要将其 append 到 SQL 查询中,例如:

$query  .= "SELECT COUNT( ". $r ." ) AS Total, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=750 AND q16 = 'Yes') AS Eng, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=450 AND ". $r ." <=749 AND q16 = 'Yes') AS Pass, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." <=449 AND q16 = 'Yes') AS Dis
FROM  tresults WHERE q16 = 'Yes';";

可能有一个 append (如上所述),也可能有多个 append 。

我以前从未尝试过这样的事情,所以我想知道在我深入研究之前是否有人有任何建议?

最佳答案

这是我的一般方法:

$filter = "AND q16 = 'Yes'"; //This value is dynamic depending on dropdown selection
$query  .= "SELECT COUNT( ". $r ." ) AS Total, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=750 " . $filter ." ) AS Eng, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." >=450 AND ". $r ." <=749 " . $filter ." ) AS Pass, 
(SELECT COUNT( ". $r ." ) FROM  tresults WHERE ". $r ." <=449 " . $filter ." ) AS Dis
FROM  tresults WHERE 1=1 " . $filter ." ;";

关于MySQL Multi Query - 构建额外的 SQL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730797/

相关文章:

mysql - SAP HANA : days between two Orders

mysql - 在jsp中将数据库表显示为rankingtable

mysql - 添加整数列和日期时间列的值并与当前日期进行比较

c++ - minizip append 到文件

python - 我可以在 Python 中使用前置元素而不是 append 来扩展列表吗?

jquery - 使用 jQuery 性能创建 DOM 元素

php - mysqli_insert_id 因 mysqli_multi_query 而失败

PHP - INSERT 并将 LAST_INSERT_ID() 保存到变量中

php - multi_query 不在循环内运行

mysql - 两个 My SQL 查询的问题