我有一个问答系统。当用户回答问题时,选择的值插入到具有结构的数据库中 answer_id,question_id,option_letter
现在我想计算option_letter并找到被选为答案的最高4个值,然后将这个最高值保存在4个不同的变量中以供日后使用。
这是我的sql语句我试图使用foreach但是得到了无效的语句传递。我不认为我这样做的方式会给我四个最高值的不同变量
$var1='';
$que= $this->query("SELECT COUNT(options), option_letter FROM personality_answer GROUP BY option_letter ORDER BY COUNT(options) DESC");
foreach($que as $row):
$var1= $row['option_letter'];
endforeach;
echo $var1;
答案 0 :(得分:0)
如果我正确理解您的数据结构,这将为您提供4个最常见的option_letters:
SELECT COUNT(answer_id), option_letter
FROM personality_answer
GROUP BY option_letter
ORDER BY COUNT(answer_id) DESC
LIMIT 4;
我会把它们放到一个数组中:
$letters = [];
foreach ($que as $row) {
$letters[] = $row['option_letter'];
}