cakephp - 如何计算cakephp中的重复值?

标签 cakephp count rows

我需要找出每个值重复了多少次。这是我到目前为止所得到的。我想用它来计算民意调查中的选票。

$this->set('votes', $this->Answer->Vote->find('all', array(
                    'fields' => array('Vote.answer_id'),
                    'group' => array('Vote.answer_id HAVING COUNT(*) > 1'))));

它会返回哪些值是重复的,如下所示:

1st answer
2nd answer
4th answer

但我仍然需要这个数字,以显示它重复了多少次。像这样的东西。

1st answer (5)
2nd answer (3)
3rd answer (1) // not duplicated
4th answer (8)

编辑: 对我有用的解决方案

在 Controller 中:

$this->set('votes', $this->Answer->Vote->find('all', array(
       'fields' => array('Vote.answer_id', 'count(*) as TotalVotes'),
       'group' => array('Vote.answer_id HAVING COUNT(*) >= 1'))));

查看中:

foreach ($votes as $vote):
echo $vote[0]['TotalVotes'];
endforeach;

最佳答案

此查询将起作用。

SELECT answer_id, COUNT(*) AS TotalVotes FROM votes GROUP BY answer_id HAVING COUNT(*) > 1

CakePHP 等效查找条件:

$result = $this->Answer->Vote->find('all', array(
                'fields' => array('Vote.answer_id', 'count(*) as TotalVotes'),
                'group' => array('Vote.answer_id HAVING COUNT(*) > 1')));

您将在 索引 [0] 处的单独数组中找到 TotalVotes。要解决此问题,只需在选择查询之前编写以下代码即可:

$this->Answer->Vote->virtualFields['TotalVotes'] = 0;

关于cakephp - 如何计算cakephp中的重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157380/

相关文章:

php - 从另一个模型cakephp 3.5获取数据

mysql - 使用 select count(*) 更新查询速度较慢

java - 在 Java 中拆分多个分隔符

python - 在同一 Pandas 数据框中交换行

textview - SAPUI5 oTable 一行作为链接,其他作为 TextView

cakephp - 将CakePHP 2.0烘焙

html - 使用 WebSockets 进行多人 HTML5 游戏开发。选择什么,Node.js,还是 Ratchet,还是其他?

php - CakePHP 3 - 使用可重用验证器

SQL SELECT 使用 CASE 语句,但有多个条件

java - 计算已完成的数独板的行数和列数