项目中某个查询需要使用到统计数量的功能,mybatis提供了count方法,但是,需求里需要对去重,需要用到distinct,如下格式:count(distinct KEY_)
SELECT COUNT(DISTINCT KEY_)
FROM program
WHERE (STATE_ = 4)
对应代码如下:
QueryWrapper<Program> query = new QueryWrapper<>();
query.select("distinct KEY_").lambda().eq(Program::getState, 4);
int num = count(query);
调用count方法,生成的代码,自动会对select的字段添加count,非常好用。
另外,使用list方法也可以,只不过使用list方法时,需要在select中加上count()。代码如下:
query.select("count(distinct KEY_) ").lambda().eq(Program::getState, 4);
生成的sql也是一样的,大家可以根据自己的需求修改即可。