php - 无论如何,有没有办法告诉MySQL结果中哪些字段是分组字段(PHP)

标签 php mysql

我有一些 PHP 代码,可以在 MySQL 表上运行用户生成的 SQL。查询的可能性是有限的,但可以是,例如

SELECT City, Country, count(*) FROM Table ... GROUP BY City, Country

SELECT count(*) AS Count, Role, Country FROM Table ... GROUP BY Role, Country

SELECT count(*), TicketType, City, SUM(Quantity) AS 'Total Quantity' FROM Table ... GROUP BY TicketType, City

等等。

当呈现查询结果时,如果列是分组字段(例如 COUNT 或 SUM 或 AVG 等),我想采取一种类型的操作

除了解析查询之外,还有什么方法可以确定哪些字段是结果集中的分组字段?我正在使用 mysqli 和 PHP

最佳答案

我想这很简单,您可以在 SELECT 子句中选择的唯一字段是在 Group By 子句中分组的字段或按聚合函数分组的字段。

所以当你使用

从表中选择城市、国家/地区、计数(*) ... GROUP BY 城市、国家/地区

您的结果集将有多行,每行三列:城市、国家/地区、计数(*)。城市和国家是分组依据的字段。

关于php - 无论如何,有没有办法告诉MySQL结果中哪些字段是分组字段(PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888818/

相关文章:

MySQL 使用 AND 组合两个 SELECT 语句

python - python utf-8字符支持中从 `\U`和 `\u`开始的unicode字符有什么区别

php - 如何在 HTML/Javascript 中像 Windows 帮助中那样做树结构

php - Laravel Eloquent - 日期属性未作为 Carbon 对象检索

javascript - Jquery click 不适用于通过 PHP 动态添加的表 tr

php - MySQL在多次查询后内存不足

php - SQL #1064 解析错误

php - JS 数组转 PHP

php - Laravel 5 启动画面返回一排问号

mysql - 如何在 MariaDB 10 中启用大索引?