Mybatis:QueryWrapper 随机

 1、使用 ORDER BY RAND()(MySQL)

对于 MySQL 数据库,你可以使用 ORDER BY RAND() 来随机排序结果。例如,如果你想要随机获取 5 条记录,可以这样做:

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import com.king.YourEntity;
import com.king.KingEntityService ;
 
public class KingTest {

    @Autowired
    private KingEntityService kingEntityService ;
 
    public void getRandomRecords() {
        QueryWrapper<YourEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderBy(true, true, "RAND()"); 
        Page<KingEntity> page = new Page<>(1, 5); 
        Page<KingEntity> result = yourEntityService.page(page, queryWrapper);
        result.getRecords().forEach(System.out::println); 
    }
}

2、使用 DBMS 特定的函数(如 SQL Server 的 NEWID()

queryWrapper.orderBy(true, true, "NEWID()"); 

3、使用 LIMIT 和 ORDER BY(PostgreSQL, MySQL, SQLite 等)

对于支持 LIMIT 子句的数据库(如 PostgreSQL, MySQL, SQLite),你可以结合使用 ORDER BY RAND()(MySQL)或相应的随机函数来实现:

queryWrapper.last("ORDER BY RAND() LIMIT 5"); 

或者使用原生 SQL:

yourEntityService.list(new QueryWrapper<YourEntity>().last("ORDER BY RAND() LIMIT 5"));

 4、使用 MyBatis Plus 的 IPage 和 PageHelper(如果你使用的是较旧的版本)

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import java.util.List;
 
public void getRandomRecordsWithPageHelper() {
    PageHelper.startPage(1, 5); 
    List<YourEntity> list = yourEntityService.list();
    Collections.shuffle(list);
    List<YourEntity> randomList = list.subList(0, Math.min(5, list.size())); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值