比如说我有一组数据 ,一个字段为年龄。
我用SELECT时有没有办法,让他不显示真正的值,而显示按年龄分组的值,
例如,30以下一组,值为1,30-40为一组,值2,40以上值为3.

解决方案 »

  1.   

    你可以使用 case when 或者 interval 函数
      

  2.   

    mysql> SELECT INTERVAL(23, 0,30, 40);
    +------------------------+
    | INTERVAL(23, 0,30, 40) |
    +------------------------+
    |                      1 |
    +------------------------+
    1 row in set (0.00 sec)mysql> SELECT INTERVAL(31, 0,30, 40);
    +------------------------+
    | INTERVAL(31, 0,30, 40) |
    +------------------------+
    |                      2 |
    +------------------------+
    1 row in set (0.00 sec)mysql> SELECT INTERVAL(41, 0,30, 40);
    +------------------------+
    | INTERVAL(41, 0,30, 40) |
    +------------------------+
    |                      3 |
    +------------------------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    SELECT INTERVAL(fld, 0,30, 40);
    或者
    SELECT CASE WHEN fld<30 THEN 1 WHEN fld<40 THEN 2 ELSE 3 END;