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();

文章作者: 落叶知秋
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 落叶知秋
喜欢就支持一下吧