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