把cast(fen1 as int)改为cast(fen1 as signed)就行了,即是把int改为signed

解决方案 »

  1.   

    mysql> create table haha(id int,fen1 varchar(10),fen2 varchar(10),fen3 varchar(1
    0));
    Query OK, 0 rows affected (0.38 sec)mysql>
    mysql> insert into haha values(1,'20','20','20');
    Query OK, 1 row affected (0.02 sec)mysql> insert into haha values(2,'20','30','40');
    Query OK, 1 row affected (0.03 sec)mysql> insert into haha values(3,'10','20','20');
    Query OK, 1 row affected (0.00 sec)mysql> select * from haha;
    +------+------+------+------+
    | id   | fen1 | fen2 | fen3 |
    +------+------+------+------+
    |    1 | 20   | 20   | 20   |
    |    2 | 20   | 30   | 40   |
    |    3 | 10   | 20   | 20   |
    +------+------+------+------+
    3 rows in set (0.02 sec)
    mysql> select *,fen1+fen2+fen3 as fen from haha order by fen desc;
    +------+------+------+------+------+
    | id   | fen1 | fen2 | fen3 | fen  |
    +------+------+------+------+------+
    |    2 | 20   | 30   | 40   |   90 |
    |    1 | 20   | 20   | 20   |   60 |
    |    3 | 10   | 20   | 20   |   50 |
    +------+------+------+------+------+
    3 rows in set (0.00 sec)