我在mySQL表中有数据列:
question 1 | question2 | question3 | question4
和每个数据将是1到3的数字。我想计算每个问题的1&2,2&3和3的数量,并且具有以下功能,但这些功能无效。
SELECT
question1 as q1
,COUNT(question1) as q1C
,question2 as q2
,COUNT(question2) as q2C
,question3 as q3
,COUNT(question3) as q3C
,question4 as q4
,COUNT(question4) as q4C
FROM pollOne
WHERE question1 != 0
AND question2 != 0
AND question3 != 0
AND question4 != 0
GROUP BY q1, q2, q3, q4
如果我将其拆分为单个问题,那么它确实如下:
SELECT
question1 as q1
,COUNT(question1) as q1C
FROM pollOne
WHERE question1 != 0
GROUP BY q1
但是如果可能的话,我宁愿一气呵成。任何人的想法?
部分回答我自己的问题,但不是解决方案,我在堆栈中遇到过这个链接:
https://stackoverflow.com/a/2421441/5880604
对群组的重要解释通过在mySQL中的使用,并清楚说明为什么我一直试图做的事情不会起作用。
我仍然想知道是否有可能,如果有人有任何见解?
答案 0 :(得分:0)
好的,克服我的问题的一种粗暴的方法是分别迭代每个问题,在我去的时候将每个问题推送到一个数组。
$data = array();
for ($i=1; $i < 5; $i++) {
$sql = "SELECT
question" . $i . " as q" . $i . "
,COUNT(question" . $i . ") as q" . $i . "C
FROM pollOne
WHERE question" . $i . " != 0
GROUP BY q" . $i;
$result = mysqli_query($connection, $sql);
while ($row = mysqli_fetch_assoc($result)){
array_push($data, $row);
}
}
我确实工作,因为这只是一个只持续几天的小项目,所以我很高兴。