为什么我在 codeigniter 中的模型中出现错误:
A Database Error Occured
Error Number: 1064
You have error in your SQL syntax;
当我尝试在 mysql 中运行它时,它工作正常。但是当我把它放在我的 CI 模型中时,它给我错误号:1064
这是我的完整模型代码:
public function checkupID() {
$query = $this->db->query(' SELECT check_up_id FROM tbl_check_up JOIN (SELECT MAX(CAST(SUBSTRING_INDEX(check_up_id, '-', -1) AS DECIMAL)) AS max_right FROM tbl_check_up) AS x
ON SUBSTRING_INDEX(check_up_id, '-', -1) = max_right ');
return $query->result();
}
我的表结构
+-------------+----------+---------+--------+
| Field | Type | NULL | Key |
+-------------+----------+---------+--------+
| check_up_id | varchar | NO | PRI |
+-------------+----------+---------+--------+
| note | varchar | YES | |
+-------------+----------+---------+--------+
最佳答案
请在下面找到我的答案。您可以在 mysql 中创建存储过程,如下所示。
DELIMITER $$
DROP PROCEDURE IF EXISTS `getCheckUpId`$$
CREATE PROCEDURE `getCheckUpId`()
BEGIN
SELECT
t1.check_up_id
FROM tbl_check_up t1
JOIN (SELECT MAX(CAST(SUBSTRING_INDEX(t2.check_up_id, '-', -1) AS DECIMAL)) AS max_right FROM tbl_check_up t2) AS x ON SUBSTRING_INDEX(t1.check_up_id, '-', -1) = x.max_right;
END$$
DELIMITER ;
现在在您的模型中,您可以如下所述进行创建。
public function checkupID() {
$query = $this->db->query('call getCheckUpId()');
return $query->row();
}
希望对您有所帮助。如果它不起作用,请告诉我。
关于mysql - 修复查询 codeigniter 模型语法错误中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771421/