mybatis排序对于一个整数类型的数据排序时怎么按照ascii码来排序了呢?

Never妥协 2021-01-31 10:36:35
刚才在做一个按照problemId(数据库中存储用的是bigint)进行排序的功能
mybatis中是这样写的

<choose>
<when test="sort != null and sort.trim() != ''">
order by ${sort} ${order}
</when>
<otherwise>
order by `problem_id` asc
</otherwise>
</choose>

然后我排序之后,发现居然是按照ascii码进行的排序,这显然不行。。然后我去数据库又看了下,

SELECT * FROM `test_problem` ORDER BY problem_id asc;

结果是正常的,,并没有按照ascii码来进行排序,那么问题就出现在mybatis解析了。。

然后我按照百度的方法给${sort}后面加了个0,果然奏效,但是很明显,这样肯定会存在很大的效率问题。。所以这种情况到底该怎么解决呢?
...全文
304 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Never妥协 2021-01-31
  • 打赏
  • 举报
回复
引用 1 楼 a1767028198的回复:
你确定是整数数据类型?你那是字符类型,只是存的是纯数字吧
如果是varchar的话,那我在数据库中直接排序的话结果就不可能是又按照数字去排的啊
Never妥协 2021-01-31
  • 打赏
  • 举报
回复
引用 1 楼 a1767028198的回复:
你确定是整数数据类型?你那是字符类型,只是存的是纯数字吧
绝对是bigint,童叟无欺
编号灬9527 2021-01-31
  • 打赏
  • 举报
回复
你确定是整数数据类型?你那是字符类型,只是存的是纯数字吧
Never妥协 2021-01-31
  • 打赏
  • 举报
回复
果然,就是这儿的问题。。。。
Never妥协 2021-01-31
  • 打赏
  • 举报
回复
引用 4 楼 a1767028198 的回复:
mybatis默认下不会去调整你的排序;如果发现数据变了,看看是不是有插件或者aop做了啥东西
我在bootstarp_table里面设置了sortable=true后,传到mybatis--》${sort}就是problemId字段,对了,有没有可能是order by problemId的问题,本来应该是problem_id的?
编号灬9527 2021-01-31
  • 打赏
  • 举报
回复
mybatis默认下不会去调整你的排序;如果发现数据变了,看看是不是有插件或者aop做了啥东西

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧