中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis中的count()按條件查詢的方法是什么

發布時間:2022-01-15 16:07:40 來源:億速云 閱讀:372 作者:iii 欄目:開發技術

這篇文章主要介紹“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_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

    2、mybatis中count()按條件查詢

    任務描述:數據庫其中有兩個字段分別為

    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(*),total為1,結果為0

    在使用count(*)查詢時,發現在console打印的mybatis日志返回的total為1,但是實際情況應該是0,返回的數據也是0

    <== Total: 1

    最后才發現,在使用count(*)查詢時,返回的total并不是查詢結果,即使為0,返回的也是1,跟total沒有關系。

    關于“mybatis中的count()按條件查詢的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    贵州省| 多伦县| 二连浩特市| 勐海县| 白朗县| 吉安县| 天峻县| 洞头县| 广南县| 中西区| 南靖县| 望城县| 深水埗区| 南安市| 青川县| 方正县| 巢湖市| 乐业县| 毕节市| 麟游县| 佛坪县| 铜川市| 资兴市| 安远县| 鹤岗市| 礼泉县| 永顺县| 吴江市| 满洲里市| 和硕县| 将乐县| 玉田县| 马龙县| 新丰县| 奇台县| 溧阳市| 比如县| 连城县| 象州县| 伊宁市| 白河县|