【发布时间】:2019-10-04 14:17:31
【问题描述】:
我编写了一个 SQL 查询来为我的项目找到所需的输出。我在正确的输出下工作正常。但是突然开始报错,并且在SQL查询中,有一些额外的撇号。如何解决?
我尝试将查询添加到$this->db->query();,但仍然没有用。
public function getStudentConut($id) {
$this->db->select('students.id')
->from('students')
->join('bp','students.pbp = bp.id','left')
->where(condition 1)
->where(condition 2);
$query1 = $this->db->get_compiled_select();
$this->db->select('students.id')
->from('students')
->join('bp','students.dbp = bp.id','left')
->where(condition 1)
->where(condition 2);
$query2 = $this->db->get_compiled_select();
$this->db->select('COUNT(id) as stud_count')
->from('('.$query1." UNION ALL ".$query2.') X')
->group_by('X.id');
$results = $this->db->get();
return $results->num_rows();
}
它之前给出了正确的计数。但是没有任何新的更改,它开始报错。
现在我得到错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 '.
id`` WHERE ``bp.some_value`` IS NULL AND ``students.`scho' 附近使用正确的语法SELECT COUNT(id) as stud_count FROM (SELECT
students.id`` FROM ``students`` LEFT JOIN ``bp`` ON ``students.pbp`` = ``bp.id`` WHERE ``bp..其他条件.. UNION ALL SELECTstudents.idFROMstudentsLEFT JOINbpONstudents.dbp=bp.id..some other condition....) X GROUP BYX.id`
【问题讨论】:
-
我认为这与额外的撇号无关。错误可以表明这一点,但这并不重要。可能是关于 UNION 查询。
标签: mysql codeigniter phpmyadmin