Python 官方文档:入门教程 => 点击学习
目录mybatis count()按条件查询1、sql count()函数2、mybatis中count()按条件查询在查询时使用count(*),total为1,结果为0mybat
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_aid
where 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
任务描述:数据库其中有两个字段分别为
1、站点:station、
2、状态: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(*)查询时,发现在console打印的mybatis日志返回的total为1,但是实际情况应该是0,返回的数据也是0
<== Total: 1
最后才发现,在使用count(*)查询时,返回的total并不是查询结果,即使为0,返回的也是1,跟total没有关系。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: mybatis中的count()按条件查询方式
本文链接: https://www.lsjlt.com/news/162591.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0