您现在的位置是:网站首页> 编程资料编程资料
mysql count 为null时,显示0的问题_Mysql_
2023-05-26
435人已围观
简介 mysql count 为null时,显示0的问题_Mysql_
mysql count 为null时,显示0
1.使用ifnull
ifnull(字段名,目标值)
SELECT a.*,IFNULL(r.count,0) from (SELECT act_id,poster_id,type,style_type,status,status_time,title,content,images,start_time,end_time,district_id,address,lon_map,lat_map,person_num,person_name,person_phone,person_wx_id,reward_min,reward_max,cost_type,meal_svc,taxi_svc,hair_length,hair_handle,remark,is_over,create_time,note FROM activity WHERE poster_id = 3055808629673784641 ORDER BY create_time DESC limit 0,20) a LEFT JOIN (SELECT count(1) count,act_id FROM activity_user u where u.user_status in ('YBM', 'YTG', 'YQR') GROUP BY u.act_id) r on a.act_id = r.act_id 2.运行结果

mysql让count为0的记录也显示出来
在mysql 下执行如下命令
select use_city,count(*) from data where os="Windows 2003 Std" group by use_city;
得到的结果为:
+-----------+----------+ | use_city | count(*) | +-----------+----------+ | Beijing | 2 | | Chengdu | 2 | | Chongqing | 1 | | Dalian | 2 | | Fuzhou | 2 | | Guangzhou | 2 | | Hangzhou | 2 | | Nanjing | 2 | | Shanghai | 21 | | Shenyang | 5 | | Wuhan | 1 | +-----------+----------+ 11 rows in set (0.01 sec)
共有11条记录,问题是其中有一个城市“Tianjing”是没有记录符合的,怎么让他显示成
+-----------+----------+ | use_city | count(*) | +-----------+----------+ | Beijing | 2 | | Chengdu | 2 | | Chongqing | 1 | | Dalian | 2 | | Fuzhou | 2 | | Guangzhou | 2 | | Hangzhou | 2 | | Nanjing | 2 | | Shanghai | 21 | | Tianjing | 0 | | Shenyang | 5 | | Wuhan | 1 | +-----------+----------+
让它count为0的记录也显示出来,做法如下:
SELECT use_city, COUNT(CASE WHEN os='Windows 2003 Std' THEN 1 ELSE NULL END) FROM data GROUP BY use_city
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- MySQL字符之char、varchar类型简析_Mysql_
- mysql 实现迁移数据库到另一台服务器_Mysql_
- 在linux服务器上配置mysql并开放3306端口的操作步骤_Mysql_
- Linux系统彻底卸载MySQL数据库详解_Mysql_
- SQL Group By分组后如何选取每组最新的一条数据_Mysql_
- 使用LEFT JOIN 统计左右存在的数据问题_Mysql_
- mysql中的mvcc 原理详解_Mysql_
- MySQL 8.0新特性之集合操作符INTERSECT和EXCEPT_Mysql_
- ubuntu20.04 安装 MySQL5.7过程记录_Mysql_
- 详解Mysql两表 join 查询方式_Mysql_
