数据排序字段包含null如何进行排序
常规排序不生效,代码排序空指针解决

- 使用sql排序
- 使用代码排序
- 使用tk排序
sql上排序
MySQL 排序使 null 排最后
第一种方法:
mysql 会把 null 当作最小值来排序,我们想根据某一字段升序【例如 sort】,又想让值为 null 排在最后面,可以在排序的字段加上负号,例如 -sort,这时 null 就变成最大值了,而其他非 null 值的排序也会反过来,这时再来个降序 desc,就可以实现根据某一字段升序,且值为 null 排在最后面;
select sort from `table` order by -sort desc;
第二种方法:
也可以通过 isnull 判断某个字段是否为 null 进行排序,isnull(sort)
select sort from `table` order by isnull(sort);
java排序
使用 nullsLast(naturalOrder())进行包含null数据排序
dictionaryEntityList.sort(Comparator.comparing(SysDictionaryEntity::getSorted, nullsLast(naturalOrder())));//包含null数据排序
userMenus.sort(Comparator.comparing(MenuVo::getSorted,Comparator.nullsLast(Comparator.naturalOrder())));
tk上排序
使用setOrderByClause方法进行排序
condition.setOrderByClause("isnull(sorted) ASC");//包含null数据排序
1009

被折叠的 条评论
为什么被折叠?



