关于实体类中写了orderBy导致报错的记录

在测试排序的过程中出现了问题

 然而在mybatis中是这样写的

测试了很多 也没找到为什么会出现order by 0 的原因

后来搜索了order 0 的的含义:

含义:

sql语句中order by 1或者order by 2...order by N

其实1表示第一个栏位,2表示第二栏位; 

依此类推,当表中只有2个栏位时,oder by 3就会出错,这个跟order by 列名没有什么区别,不过在特殊情况下还是很有用的.

注意:

扫描二维码关注公众号,回复: 15991249 查看本文章

ORDER BY ASC应该没有这样写法,ORDER BY 后面不是字段就是数字;

可以ORDER BY 1 ASC 或者ORDER BY COL1 ASC ;

ASC表示按升序排序,DESC表示按降序排序

这是我的传参

 因为select的查询不可能有第0个栏位,所以会报开头图片的错误,order by 1 就是按照搜索的第一个字段排序,但是这不是我想要的排序,我想是不是因为实体类中有 orderBy 会直接影响排序。果然我把mybatis的排序删掉,当我orderBy传参时传多少,sql中就会 order by多少。当我把实体类中orderBy替换为sortBy时问题解决。

 总结:尽量避免实体类中出现sql中的关键词,避免出现问题。

猜你喜欢

转载自blog.csdn.net/weixin_55823910/article/details/126778877
今日推荐