我的查询获取varchar的最大值时出错

时间:2017-06-26 01:23:43

标签: php mysql sql codeigniter

我正在使用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();
    }

1 个答案:

答案 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

的第三个参数有效