代码之家  ›  专栏  ›  技术社区  ›  Max

缩短mysql查询

  •  -1
  • Max  · 技术社区  · 7 年前

    有没有更短的方法来编写这个MySQL查询?

    SELECT Ren, 
           CASE when Ron like '0_.' then '' else Ron end as Ron,
           CASE when Ron like '1_.' then '' else Ron end as Ron,
           CASE when Ron like '2_.' then '' else Ron end as Ron
    FROM tbron
    

    我在这里尝试做的是,如果上面有任何这些值,那么它应该导致“”为空。

    谢谢!

    4 回复  |  直到 7 年前
        1
  •  1
  •   Bernd Buffen    7 年前

    SELECT 
        Ren,
        IF ( `Ron` REGEXP '[0-2]\_\.', '' , `Ron`) AS Ron
    FROM tbron
    
        2
  •  3
  •   Kobi    7 年前

    SELECT Ren, 
    CASE
        WHEN Ron like '0_.' then ''
        WHEN Ron like '1_.' then ''
        WHEN Ron like '2_.' then ''
        ELSE Ron
    END
    FROM tbron
    
        3
  •  2
  •   skelwa    7 年前

    SELECT Ren, 
    CASE
        WHEN Ron like '0_.' OR Ron like '1_.' OR Ron like '2_.' then ''
        ELSE Ron
    END
    FROM tbron
    
        4
  •  1
  •   Gordon Linoff    7 年前

    Ron

    SELECT Ren, 
           (CASE WHEN Ron REGEX '^[0-2].?[.]$' THEN '' ELSE Ron END) as Ron
    FROM tbron;
    

    • LIKE
    • _ .?
    • .