我正在使用Codeigniter框架,我不知道为什么我的查询中出现错误。当我在查询构建器navicat中尝试它时,我的查询成功运行并返回我的字段varchar的最大数量。但是当我在我的模型中尝试它时,它给了我错误:
发生数据库错误
错误号码:1064
您的SQL语法有错误; 查看与您的MariaDB服务器版本对应的手册 在第1行使用“0”附近的正确语法
以下是我在模型中的查询:
public function checkupID() {
$query = $this->db->query(' SELECT tbl_check_up.check_up_id FROM tbl_check_up ORDER BY substring_index(tbl_check_up.check_up_id, '-', 1) + 0,
substring_index(tbl_check_up.check_up_id, '-', -1) + 0 DESC LIMIT 1 ');
return $query->result();
}
答案 0 :(得分:1)
也许您正在寻找第一个子串(破折号之前)的长度作为订购方式?
SELECT tbl_check_up.check_up_id
FROM tbl_check_up
ORDER BY
length(substring_index(tbl_check_up.check_up_id, '-', 1))
LIMIT 1
;
但是我不确定订单的第二部分的用途是什么。
+编辑,纠正。 -1作为substring_index
的第三个参数有效