【问题标题】:Mysql SELECT CASE LIKE give a NULL rowMysql SELECT CASE LIKE 给出一个 NULL 行
【发布时间】:2015-03-01 12:23:43
【问题描述】:

我正在使用以下查询,但它给出了 NULL 行以及其余结果:

SELECT  CASE 
WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE'
WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox'
WHEN csuseragent LIKE '%chrome%' THEN 'chrome'
END AS Browser ,count(*) as num
FROM logs.log
group by Browser
order by num desc

+---------+--------+
| Browser | num    |
+---------+--------+
| chrome  | 319607 |
| NULL    | 125974 |
| Firefox | 124627 |
| IE      |  56913 |
+---------+--------+

那么如何删除NULL125974

【问题讨论】:

    标签: mysql sql select group-by case


    【解决方案1】:

    您可以使用having 子句过滤掉组:

    SELECT  CASE 
    WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE'
    WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox'
    WHEN csuseragent LIKE '%chrome%' THEN 'chrome'
    END AS Browser ,count(*) as num
    FROM logs.log
    GROUP BY Browser
    HAVING Browser IS NOT NULL
    ORDER BY num DESC
    

    【讨论】:

      【解决方案2】:

      给你

      SELECT  CASE 
      WHEN csuseragent LIKE '%MSIE+8.0%' or csuseragent like '%Trident%' THEN 'IE'
      WHEN csuseragent LIKE '%Firefox%' THEN 'Firefox'
      WHEN csuseragent LIKE '%chrome%' THEN 'chrome'
      WHEN Browser IS NOT NULL
      END AS Browser ,count(*) as num
      FROM logs.log
      
      group by Browser
      order by num desc
      

      【讨论】:

        【解决方案3】:

        添加WHERE Browser IS NOT NULL 子句

        【讨论】:

          猜你喜欢
          • 2011-06-07
          • 1970-01-01
          • 2021-07-13
          • 1970-01-01
          • 2012-04-06
          • 2020-09-22
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          相关资源
          最近更新 更多