【问题标题】:sql group by is duplicating resultssql group by 重复结果
【发布时间】:2015-01-22 09:42:28
【问题描述】:

我正在尝试创建一个带有计数的制造商列表。

这是我的查询

$query = $this->pdo->prepare('SELECT manufacture, count(*) AS count
                                      FROM listed_watches
                                      GROUP BY manufacture');

但是当我执行 print_r 时,它会复制结果。显示“manufacture”和“count”的同时还显示[0]和[1],怎么回事?

我只是想让它显示[制造],[计数]

Array
(
    [0] => Array
        (
            [manufacture] => Audemars Piguet
            [0] => Audemars Piguet
            [count] => 2
            [1] => 2
        )

    [1] => Array
        (
            [manufacture] => Bell and Ross
            [0] => Bell and Ross
            [count] => 3
            [1] => 3
        )

    [2] => Array
        (
            [manufacture] => Bulova
            [0] => Bulova
            [count] => 1
            [1] => 1
        )

)

【问题讨论】:

  • 你是如何获取记录的?
  • 它与 SQL 组无关通过您在 php 中获取结果的方式提供您的代码

标签: php mysql sql group-by


【解决方案1】:

试试这个:

$result = $query->fetchAll(PDO::FETCH_ASSOC);

默认情况下,您可以在初始化连接时使用此获取方法:

$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC;

【讨论】:

  • YES :D 这行得通。你能解释一下为什么会这样吗?
  • 默认的 Fetch_Mode 是 PDO::FETCH_BOTH,它返回重复值(按列名和按索引)。为什么会这样,我不知道......但你可以在这里阅读一些信息:php.net/manual/en/pdostatement.fetch.php
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多