php - 在 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....
请帮我
解决方案
您似乎正在寻找简单的聚合:
select country, count(*) no_users from data group by country order by country;
这为您提供了两列,分别是国家和用户数量。然后,您可以在应用程序中生成正确的字符串输出。
推荐阅读
- database - 如何在 laravel 中使用 Group by 查询?
- php - 不能将字符串偏移量用作 addressfield_widget_process() 中的数组
- python - 为什么在新测试图像上运行良好的卷积神经网络模型在视频流上失败?
- python - Anaconda 的最佳实践是设置需要在 Anaconda 找到的财务功能的 python 环境的方式吗?
- java - 如何在 Linux 中提高 Java SOAP Web 服务客户端性能
- rabbitmq - 设置消息之间的最小延迟 - rabbitmq
- javascript - Nodejs如何决定首先执行哪个函数?
- npm - 为什么这个 gulp 脚本在 v4.0.0-alpha.2 和 v4.0.2 之间表现不同?
- http - 大文件上传时 TidHTTPServer “内存不足”
- reason - 此表达式具有类型...但表达式应为类型