文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mybatis中的count()按条件查询的方法是什么

2023-06-26 05:46

关注

这篇文章主要介绍“mybatis中的count()按条件查询的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis中的count()按条件查询的方法是什么”文章能帮助大家解决问题。

mybatis count()按条件查询

1、sql count()函数

count()函数返回匹配指定条件的行数。

sql count(column_name)语法:

count(column_name)函数返回指定列的值的数目(null)不计入。

select count(column_name) from table_name

sql count(*)语法:

count(*)函数返回表中的记录数。

select count(*) from table_name

sql count(distinct column_name)语法:

count(distinct column_name)函数返回指定列的不同值的数目。

select count(distinct column_name) from table_name

比如下面这张表:table_aid 

+-----+---------+-------+------------+| aid | site_id | count | date       |+-----+---------+-------+------------+|   1 |       1 |    45 | 2016-05-10 ||   2 |       3 |   100 | 2016-05-13 ||   3 |       1 |   230 | 2016-05-14 ||   4 |       2 |    10 | 2016-05-14 ||   5 |       5 |   205 | 2016-05-14 ||   6 |       4 |    13 | 2016-05-15 ||   7 |       3 |   220 | 2016-05-15 ||   8 |       5 |   545 | 2016-05-16 ||   9 |       3 |   201 | 2016-05-17 |+-----+---------+-------+------------+

执行sql语句:

//特定条件下指定列的数目select count(count) as nums from table_aidwhere site_id = 3//输出结果:nums值为:521 //计算table_aid中总记录数select count(*) as nums from table_aid//输出结果:nums值为:9 //指定列的不同值的数目select count(distinct site_id) as nums from table_aid//输出结果:nums值为:5

2、mybatis中count()按条件查询

任务描述:数据库其中有两个字段分别为

站点:station、

状态:status,status的取值为success或者fail。

现在需求为将记录按站点分组,且要统计出其中的status为success的数量和为fail的数量。

mybatis代码:

 <resultMap id="GroupBaseResultMap" type="java.util.Map">    <result column="station" jdbcType="VARCHAR" property="station" />    <result column="successNum" jdbcType="VARCHAR" property="successNum" />    <result column="totalNum" jdbcType="VARCHAR" property="totalNum"/>  </resultMap>  <!--任务统计:按站点    sum(if(type="fail",status,0))-->  <select id="selectGroupByStation" resultMap="GroupBaseResultMap">    select rfr.station, count(rfr.status='success' or null) as successNum, count(rfr.status='fail' or null) as failNum, count(1) as totalNum    from rec_file_report rfr    GROUP BY station  </select>

测试结果为:

    {
        "failNum": 2,
        "totalNum": 73,
        "successNum": 71,
        "station": "admin"
    },
    {
        "failNum": 26,
        "totalNum": 521,
        "successNum": 495,
        "station": "changjiu.shao@wisdom56.com"
    }

在查询时使用count(*),total为1,结果为0

在使用count(*)查询时,发现在console打印的mybatis日志返回的total为1,但是实际情况应该是0,返回的数据也是0

<== Total: 1

最后才发现,在使用count(*)查询时,返回的total并不是查询结果,即使为0,返回的也是1,跟total没有关系。

关于“mybatis中的count()按条件查询的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯