MySQL多查询-在附加SQL参数中构建
我有以下代码:MySQL多查询-在附加SQL参数中构建,mysql,append,mysqli-multi-query,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 .
$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查询添加额外的参数
因此,例如,用户可能会从下拉列表中选择一个选项,然后需要将该选项附加到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';";
可能有一个附加,如上所述,或几个附加
我以前从未尝试过类似的事情,所以在我深入研究之前,我想知道是否有人有任何建议?以下是我的一般方法:
$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 ." ;";