Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql查找列模式_Php_Mysql_Codeigniter - Fatal编程技术网

Php Mysql查找列模式

Php Mysql查找列模式,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个返回列模式的查询。但是在我的例子中,我需要返回表中12列的模式 对每一列运行此查询效率太低,而且需要相当长的时间 有没有办法改进这个查询,使它在一个查询中返回所有12列的模式 我的问题如下 SELECT {$type} as mode_value, COUNT({$type}) AS mode FROM alterations GROUP BY

我有一个返回列模式的查询。但是在我的例子中,我需要返回表中12列的模式

对每一列运行此查询效率太低,而且需要相当长的时间

有没有办法改进这个查询,使它在一个查询中返回所有12列的模式

我的问题如下

SELECT {$type} as mode_value, COUNT({$type}) AS mode 
                                    FROM alterations
                                    GROUP BY   {$type} 
                                    ORDER BY mode DESC 
                                    LIMIT 1
其中,$type是列名

我使用codeigniter作为我的框架

您可以尝试:

select modeval, count(*) mode from
(select col1 modeval FROM alterations union all
 select col2 modeval FROM alterations union all
 select col3 modeval FROM alterations union all
 select col4 modeval FROM alterations union all
 select col5 modeval FROM alterations union all
 select col6 modeval FROM alterations union all
 select col7 modeval FROM alterations union all
 select col8 modeval FROM alterations union all
 select col9 modeval FROM alterations union all
 select col10 modeval FROM alterations union all
 select col11 modeval FROM alterations union all
 select col12 modeval FROM alterations) sq
GROUP BY modeval ORDER BY mode DESC LIMIT 1

不,除非您想维护另一个“聚合器”表,否则没有办法解决这个问题……如果这个表运行缓慢,您应该为$type的所有sane值添加一个索引