Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Mysql CodeIgniter查询组和多个字段中的计数值(相同类型)_Mysql_Sql_Codeigniter - Fatal编程技术网

Mysql CodeIgniter查询组和多个字段中的计数值(相同类型)

Mysql CodeIgniter查询组和多个字段中的计数值(相同类型),mysql,sql,codeigniter,Mysql,Sql,Codeigniter,我想在模型中构建一个查询,用相同类型的值对3列(在一个MySQL表中)中的值进行分组和计数:INT(11) 列1的值为:“1”“2”“3” 第2列的值为:“2”“3”“3” 第3列的值为:“1”“1”“1” 需要的结果是一个包含2个参数的数组:数字和此数字的计数器 例如:数字“1”和计数器“4” 在我的CI模型中: public function report_1() { $sql = 'SELECT col1, COUNT(col1) as counter1, col2, COUN

我想在模型中构建一个查询,用相同类型的值对3列(在一个MySQL表中)中的值进行分组和计数:INT(11)

列1的值为:“1”“2”“3”

第2列的值为:“2”“3”“3”

第3列的值为:“1”“1”“1”

需要的结果是一个包含2个参数的数组:数字和此数字的计数器

例如:数字“1”和计数器“4”

在我的CI模型中:

   public function report_1() {
   $sql = 'SELECT col1, COUNT(col1) as counter1, col2, COUNT(col2) as counter2,col2,COUNT(col3)
   as counter3 FROM table_name GROUP BY ....';   
   $query = $this->db->query($sql);
   return $query->result_array();
   }
在我看来: 包含两列(“数字”和“计数器”)的HTML表格: 编号“1”“2”“3” 计数器“4”“2”“3”


提前感谢您提供的任何解决方案。

要计算一个值在不同列中存在的时间,您需要首先连接这些列,然后计算每个值的出现次数

您可以使用
UNION ALL

试试这个:

SELECT
    col_value,
    count(*) AS counter
FROM
    (
        SELECT col_1 AS col_value FROM test_a

        UNION ALL

        SELECT col_2 AS col_value FROM test_a

        UNION ALL

        SELECT col_3 AS col_value FROM test_a
    ) AS temp_tb
GROUP BY
    col_value
ORDER BY
    counter DESC

我们使用将所有列连接到一个名为col_val的列中,然后使用计数和分组来获得每个值的出现次数。

能否显示您期望的结果?什么?(Lorem ipsum-填充文本以便接受评论)它正在工作!非常感谢您提供此SQL代码!:)