获取表中最高4个值的计数并另存为变量

时间:2017-11-24 13:55:21

标签: php mysql

我有一个问答系统。当用户回答问题时,选择的值插入到具有结构的数据库中 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;

1 个答案:

答案 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'];
}