mysql 中count 結果為空的情況

2021-10-08 17:36:20 字數 879 閱讀 7414

今天遇到乙個場景,統計**的使用者訪問量,功能還是比較簡單,可能乙個簡單的sql就能返回結果,由於訪問使用者需要去重,所以就寫了如下的sql,我用的是mysql 8+

select count(1) num from t_customer_visit_log where logname = '來訪使用者'

and create_time between '2010-01-01' and '2030-02-02' group by userid

正常應該也是這樣,但是當記錄為空的時候,查詢結果不是0,而是空記錄

這在後台請求的時候就會報錯空指標異常,之前一直沒遇到過,最後發現是分組去重的原因,分組的時候,結果應該是一條分組結果,而不是count的計算結果,所以一般遇到分組統計的話,最好做個處理,以免掉坑,我用的補救方式如下,僅供參考

select count(1) num from (

select userid from t_customer_visit_log where logname = '來訪使用者'

and create_time between '2010-01-01' and '2030-02-02' group by userid

) visitpv

返回結果正常

備註:沒試過其他的資料庫,按正常理解的話,應該都會遇到這種問題。

mysql游標結果為空

定義游標時直接查詢資料時,結果為空,解決方法如下 定義游標名字為c result declare c result cursor for select table name,column name from information schema.columns where table schema ...

ResultSet結果集為空判斷

之前對resultset結果集的next 方法的引用沒太多在意,常常就是直接while rs.next 進行遍歷。如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if...

ResultSet結果集為空判斷

工作中碰上,在網上看了半天,才發現 如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if rs.first 前者是判斷rs是否有值,沒有時返回false 後者是判斷r...