MySQL 使用in查询保持集合中元素的顺序
SQL语句实现
Mysql的in语句,in的集合,无论你集合中元素的顺序是怎么样的,最后他都会按照升序排序的方式把你集合中的条件查询出来
想要按照集合中的元素顺序查出,就要在SQL最后添加上
#ORDER BY FIELD(字段名,[顺序列表])
ORDER BY FIELD(id,5,4,3)
JavaAPI实现
MybatisPlus的list查询在底层使用的是Mysql的in语句,而Java中并没有提供有关FIELD的对应方法,使用我们只能使用拼接SQL的方式
例如:
List<Long> userIds=new ArrayList<>();
userIds.add(6);
userIds.add(4);
userIds.add(5);
String idStr = StrUtil.join(",", userIds);
//查询出User对象
List<User> users=userService.query()
.in("id", userIds)
.last("ORDER BY FIELD(id," + idStr + ")") //表示在SQL的最后拼接上语句
.list();
本文链接:
/archives/1727253518134
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
落叶知秋!
喜欢就支持一下吧