猿问

在 MySQL 中对结果进行分组并显示在列表中

我有一张大桌子:


create table data

(

    id                bigint unsigned auto_increment primary key,

    first              varchar(120)                     null,

    last_           varchar(120)                     null,

    country             varchar(30)                     not null

)

    collate = utf8mb4_unicode_ci;

我需要在列表中显示来自各个国家/地区的人数。


我有一个典型的 SQL 查询:


public function getAll(): array

    {

        $this->db->query('SELECT * FROM data ORDER by id DESC;');

        return $this->db->resultSet();

    }

但我不知道如何分组我的结果:(


我打印我的结果:


$this->model->getAll()

然后foreach....


结果我需要:


1. 10 users from Poland; 

2. 101 users from Germany; 

3. 99 users from UK....

请帮我


牧羊人nacy
浏览 133回答 1
1回答

慕村9548890

您似乎在寻找简单的聚合:select country, count(*) no_users from data group by country order by country;这为您提供了两列,分别是国家和用户数量。然后您可以在您的应用程序中生成正确的字符串输出。
随时随地看视频慕课网APP
我要回答