现象:⬇️
描述:执行 SQL 没问题,应用代码报错 ⬇️
.mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::SELECT voucherNo FROM voucher ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE('_', voucherNo) + 1) AS UNSIGNED) DESC LIMIT 1
尝试:添加 <script>
、更换 MySQL 版本、更换更通用的 SQL 内置函数、Google …(无果)
进一步检验:换了一个基本查询试试会不会出现同样的问题,结果没啥卵用
尝试1:添加一定的条件:WHERE 1 = 1
无果…
尝试2:添加一定的条件:WHERE id > 0
成功!!!!
@Select("SELECT voucherNo FROM " + BASE_TABLE + " WHERE id > 0 ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE('_', voucherNo) + 1) AS UNSIGNED) DESC LIMIT 1")String getMaxVoucherNo();
??? Why,望有缘人解惑。