在编写sql进行语句查询的时候, 莫名的报了个druid sql format错误。 本来以为是数据库连接池的问题。 跟踪代码发现原来是jfinal在处理order by的时候出了问题。
原sql如下:
select * from (
SELECT * FROM t_storage_daily_stat WHERE company_social_credit_code = 'xxx'
AND storage_date = 'xxx'
ORDER BY convert(hospital_name USING gbk) asc, storage_date desc, convert(material_name USING gbk) asc
) t
在经过jfinal的如下方法处理后:
这句totalRowSql变成了如下的sql:
select count(*) from (
SELECT * FROM t_storage_daily_stat WHERE company_social_credit_code = ?
AND storage_date = ?
USING gbk) asc, storage_date desc, convert(material_name USING gbk) asc
) t
ORDER BY convert(hospital_name 这一块居然没了!! 没了!!
https://jfinal.com/doc/5-6