gpt4 book ai didi

mysql - 修复查询 codeigniter 模型语法错误中的错误

转载 作者:行者123 更新时间:2023-11-28 23:13:51 26 4
gpt4 key购买 nike

为什么我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com