2016-03-04 82 views
2

我提出这个分页和我有这个错误在我的查询MySQL的限制和偏移误差

Error Number: 1064 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0 , 10' at line 9 

SELECT job_availability.JOB_CODE, job_titles.JOB_NAME, job_availability.AVAILABILITY FROM job_titles LEFT JOIN job_availability ON job_availability.JOB_CODE = job_titles.JOB_CODE ORDER BY job_titles.JOB_NAME, LIMIT 0 , 10 

我试图做到这一点

function get_department_list($limit, $start) 
{ 
    $sql = 'select var_dept_name, var_emp_name from tbl_dept, tbl_emp where tbl_dept.int_hod = tbl_emp.int_id order by var_dept_name limit ' . $start . ', ' . $limit; 
    $query = $this->db->query($sql); 
    return $query->result(); 
} 

我的代码是

public function get_list($limit , $start){ 

    $sql = ('SELECT 
       job_availability.JOB_CODE, 
       job_titles.JOB_NAME, 
       job_availability.AVAILABILITY 
      FROM job_titles 
      LEFT JOIN job_availability 
      ON job_availability.JOB_CODE = job_titles.JOB_CODE 
      ORDER BY job_titles.JOB_NAME, 
      LIMIT ? , ?'); 
    $data = array($start, $limit); 
    $query = $this->db->query($sql, $data); 
} 

我不认为我的代码有问题,所以我不确定错误是什么。我的MySQL版本是5.6.24。

回答

3

limit子句前order by子句末尾有一个多余的逗号(,)。刚删除它,你应该没问题:

SELECT 
    job_availability.JOB_CODE, 
    job_titles.JOB_NAME, 
    job_availability.AVAILABILITY 
FROM job_titles 
LEFT JOIN job_availability 
ON job_availability.JOB_CODE = job_titles.JOB_CODE 
ORDER BY job_titles.JOB_NAME 
-- Comma removed here ------^ 
LIMIT ? , ? 
+1

好的。我现在工作。谢谢! –