Php 包含从select到groupBy mysql的所有列
我有一个查询,需要在其中添加select到groupBy子句中的所有列。这只是一个例子,我有大约20-25列要选择,还有一个长查询要处理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
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);