您好,登錄后才能下訂單哦!
這篇文章主要介紹“mybatis中的count()按條件查詢的方法是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mybatis中的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_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沒有關系。
關于“mybatis中的count()按條件查詢的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。