我有一个页面询问用户对某个主题的意见。然后他们的回答被保存到表格中。我想要做的是检查有多少用户选择了1,2,3和4选项。
我现在拥有多个成功运行的T-SQL查询,但我相信我编写的代码的简化版本。如果有人可以将我的查询简化为单个查询,我将不胜感激。谢谢。
这里是数据库表中的数据样本
enter image description here
$sql4 = "SELECT COUNT(CO) FROM GnAppItms WHERE CO='1' AND MountID='".$mountID."'";
$stmt4 = sqlsrv_query($conn2, $sql4);
$row4 = sqlsrv_fetch_array($stmt4);
$sql5="SELECT COUNT(CO) FROM GnAppItms WHERE CO='2' AND MountID='".$mountID."'";
$stmt5=sqlsrv_query($conn2,$sql5);
$row5=sqlsrv_fetch_array($stmt5);
$sql6="SELECT COUNT(CO) FROM GnAppItms WHERE CO='3' AND MountID='".$mountID."'";
$stmt6=sqlsrv_query($conn2,$sql6);
$row6=sqlsrv_fetch_array($stmt6);
$sql7="SELECT COUNT(CO) FROM GnAppItms WHERE CO='4' AND MountID='".$mountID."'";
$stmt7=sqlsrv_query($conn2,$sql7);
$row7=sqlsrv_fetch_array($stmt7);
答案 0 :(得分:0)
您可以在sql server
中使用group by来完成示例:
create table a
(id int,
mountid nvarchar(100),
co int,
)
insert into a values (1,'aa',1)
insert into a values (2,'aa',2)
insert into a values (3,'aa',1)
insert into a values (4,'aa',2)
insert into a values (5,'aa',3)
查询
select co,count(co)as countofco from a
where mountid='aa'
group by
co
结果
co countofco
1 2
2 2
3 1
注意:在编写SQL查询时要小心SQL注入,因此请始终使用参数化查询。您可以编辑上面的示例代码,并将其作为参数化查询以防止sql注入