Php 包含从select到groupBy mysql的所有列

Php 包含从select到groupBy mysql的所有列,php,mysql,Php,Mysql,我有一个查询,需要在其中添加select到groupBy子句中的所有列。这只是一个例子,我有大约20-25列要选择,还有一个长查询要处理 Eg = SELECT contact.id as id, contact.name as name, IF ( contact.type = 'type1', NULL, contact.organization_name), contact.occupation as occupation, contact.gender a

我有一个查询,需要在其中添加select到groupBy子句中的所有列。这只是一个例子,我有大约20-25列要选择,还有一个长查询要处理

Eg = SELECT contact.id as id, contact.name as name, 
       IF ( contact.type = 'type1', NULL, contact.organization_name), 
       contact.occupation as occupation, contact.gender as gender 
     FROM table_name 
     WHERE <condition> 
     GROUP BY contact.id.
现在,我必须动态更新
groupBy
子句,以包含php代码中
$select
数组中的所有列

我已经做到了:

foreach ($select as $key => $val) {
  $alias = explode(' as ', $val);
  if ($alias[0] != 'contact_a.id') {
    $selectColAlias[] = $alias[0];
  }
}

$groupBy .= ', ' . implode(', ', $selectColAlias);
如果
$select
数组中未包含
类型
,则此操作正确

是否有任何东西可以填充我的groupBy子句以包含select子句中的所有列


因为我启用了
仅\u FULL\u GROUP\u BY
模式。如果不执行上述操作,则会出现错误。

注意:我无法禁用
仅通过
模式来避免此问题。为什么不选择“非动态”?“
$SELECT
中的列是我所拥有的(无法更改),需要用这个数组修改
$groupBy
你在select子句中只有一个
IF
吗?不,有多个这样的STMT,它只是一个例子,我只是想看看是否有其他的方法-除了我试图从select到group by(可能来自mysql perspertive?)中包含的内容之外注意:我无法禁用
仅按
模式来避免这种情况。为什么不将SELECT设置为“非动态”?“
$SELECT
中的列是我所拥有的(无法更改),需要使用此数组修改
$groupBy
如果SELECT子句中的
只有一个
呢?不,有多个这样的STMT,这只是一个例子,我只是想看看是否有其他的方法-除了我试图包括从select到groupby(可能来自mysql perpertive?)
foreach ($select as $key => $val) {
  $alias = explode(' as ', $val);
  if ($alias[0] != 'contact_a.id') {
    $selectColAlias[] = $alias[0];
  }
}

$groupBy .= ', ' . implode(', ', $selectColAlias);