请教mysql数据库case when用法

justinbb6 2017-08-29 04:08:48
目前sql:
select year, count(operator) as '移动' from
(SELECT
(CASE
WHEN date BETWEEN '2013-01-01' AND '2014-01-01' THEN '2013年'
WHEN date BETWEEN '2014-01-01' AND '2015-01-01' THEN '2014年'
WHEN date BETWEEN '2015-01-01' AND '2016-01-01' THEN '2015年'
WHEN date BETWEEN '2016-01-01' AND '2017-01-01' THEN '2016年'
WHEN date BETWEEN '2017-01-01' AND '2018-01-01' THEN '2017年'
END) as 'year', operator
FROM
(select operator, STR_TO_DATE(date,'%Y.%m.%d') as 'date' from yonghuxingweifenxi) t
where operator = '移动') T
group by year
结果:

因为表里没有存在2013年跟2017年的数据,但是想没有的话返回0。
理想结果:

求清晰指教。

...全文
164 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongmei85 2017-08-29
  • 打赏
  • 举报
回复
为什么不在php里做这个事情呢

<?php

for($i = 2013; $i <= 2017; $i++){
    $arr[(string)$i] = 0;
}

$query = "...";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        $arr[$row['year']] = $row[ '移动'];
    }

    /* free result set */
    $result->close();
}

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧