【问题标题】:“create view” and "Other query" merge problem in Codeigniter using mysql使用 mysql 在 Codeigniter 中“创建视图”和“其他查询”合并问题
【发布时间】:2020-01-31 10:29:18
【问题描述】:

在 phpmyadmin 中,我运行两个查询都在工作,我得到了我的值,但是当我想在 codeigniter 中执行这个查询时,我遇到了如何使用相同的函数执行两个查询的问题。下面是我的查询。

查询:

create view V_average_marks AS
 select student_id,avg(total_mark) as average_mark from total_marks 
 group by student_id;

SELECT student_id,(average_mark), FIND_IN_SET( average_mark, (
SELECT GROUP_CONCAT( average_mark
ORDER BY average_mark DESC ) 
FROM V_average_marks )
) AS rank
FROM V_average_marks;

当我在 phpmyadmin 上运行它时我得到了我的价值,但是当我在 codeigniter 中运行时我感到困惑。找不到正确的方法。

型号:

public function final_rank()
    {
        $sql = "SELECT student_id,(average_mark), FIND_IN_SET(average_mark,(GROUP_CONCAT( average_mark ORDER BY average_mark DESC)FROM V_average_marks)) AS rank FROM V_average_marks";
        $query = $this->db->query($sql);

        return $query->result_array();
    }

【问题讨论】:

  • 你对 final_rank() 的返回值做了什么?
  • 我想根据他们的数字对他们进行排名。
  • 好吧,我应该问一下,调用 final_rank() 函数会得到什么结果。可以展示一下结果吗?
  • 这些不是同一个查询:(SELECT GROUP_CONCAT( vs (GROUP_CONCAT(
  • 当我厌倦了模型中的 codeigniter 时,它什么也没有显示...它显示错误 500 但是当我在 sql 上重新运行它时,它给了我排名的价值.. student_id average_mark 排名 110 450.6667 1 111 329.3333 2 112 285.0000 3 113 77.3333 10 114 70.0000 11 等这些是我在 sql 上运行时的数据

标签: php codeigniter phpmyadmin codeigniter-3 codeigniter-2


【解决方案1】:

我找到了正确答案:

create view V_average_marks AS
select student_id,avg(total_mark) as average_mark from total_marks 
group by student_id; 

create view V_rank AS
SELECT student_id,(average_mark), FIND_IN_SET( average_mark, (
SELECT GROUP_CONCAT( average_mark
ORDER BY average_mark DESC ) 
FROM V_average_marks )
) AS rank
FROM V_average_marks;

SELECT * from V_rank;

从模型调用SELECT * from V_rank这个sql,你可以得到期望的结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2012-12-02
    • 2020-03-04
    相关资源
    最近更新 更多