select * from user_xx order by name asc 搜索结果如下
因为数据库自动补位的关系 加上排序用第一位开始排,所以排序第二位会是10,而2会在19之后,
此次数据库使用是Mybatis ,SQL语句可改为
select * from user_xx order by Integer(trim(char(name))) asc 这样会使char型的name 转换为Integer型并trim掉空格,
这样搜索就会正常了。 但是据说这样在sql中转换会导致运行时负载过高,所以又要求我们在Dao层查询出结果后再重新排序
List<Pentity> PentityList = mapper.select001();
这是升序排列的
Collections.sort(PentityList ,new Comparator<Pentity>(){
@Override
public int compare(final Pentity p1,final Pentity p2){
return Integer.valueOf(p1.name()).compareTo(Integer.valueOf(p2.name()));
}
});