数据库:mysql5.7
查询结果要求按照某一列的中文排序,然后查询sql中是这么写的:
由于stu_name 列在数据库中是utf-8编码 所以sql中使用了转码函数
convert(stu_name using gbk)
使用后查询报错:
很显然是sql 有问题。于是把sql拿到数据库去执行,然而是好使的。头皮有点发麻。。。。。。
没办法 打断点一步步看呗,于是找到问题出在这里:
sqlExceptSelect 没问题
问题是执行config.dialect.replaceOrderBy(sqlExceptSelect) 后totalRowSql 就有问题了:
不知所措。。。。。
还请大神指点一下,谢谢!!
http://www.jfinal.com/doc/5-6
分页查询获取 totalRow 这个数据的时候需要用正则移除 order by 子句,而 sql 可以是很复杂的嵌套结构,如果要考虑各种情况用正则将 order by 移除干净,性能会很差
而绝大部分情况下的 order by 是可以用简单正则处理的,因为用 paginateByFullSql 来支持复杂 order by 是最佳方案