按不显示所有结果分组

group by not showing all results

所以我有一个 table 叫做“手表”

然后我有 3 列这样

id | manufacture | model
1    rolex         2483
2    rolex         3940
3    rolex         4940
4    dent          ee30

但我希望输出像

rolex
dent

但是当我尝试以下 select 制造商时

('SELECT manufacture FROM `watches` GROUP BY manufacture')

目前它只显示“dent”,而它应该是“rolex, dent”。怎么就不行了。 iv 也尝试过这个,但这给出了相同的结果

('SELECT DISTINCT(`manufacture`) FROM `watches`')

全功能

$query = $this->pdo->prepare('SELECT DISTINCT(`manufacture`) FROM `watches`');

$query->execute();

if($query->fetch()){

    $row = $query->fetchAll();
    foreach ($row as $i) {
        $select .= '<option value="'.$i['manufacture'].'">'.$i['manufacture'].'</option>';
    }
    return $select;
} else {
    return '<option value="0">No watches yet!</option>';
}

添加 WHERE 1

'SELECT `manufacture` FROM `watches`WHERE 1 GROUP BY `manufacture`

始终使用重音符号将 table 和列名称括起来是一种很好的做法。

您只需要按制造商订购:

SELECT manufacture FROM `watches` GROUP BY manufacture ORDER BY manufacture desc

请尝试使用

if ($query->rowCount() > 0) {

而不是

if($query->fetch()){

因为 fetch 从语句中获取结果,但为此您在后续代码中使用 fetchAll