$sql="select *,(p_sports_win*3)-(p_sports_lost*1) as points这是sql相减语句
p_sports_win 为int p_sports_lost也为int但是相减该为负数的时候切出现了一个老大的正数这得怎么解决 在线等....

解决方案 »

  1.   


    mysql> select * from a;
    +----------+------+-------+
    | name     | win  | lost  |
    +----------+------+-------+
    | dfnfdk   |   43 |    34 |
    | fgre     |   23 |    76 |
    | gfr      |   56 |    43 |
    | dujfnfdk |    4 |    34 |
    | fgddre   |    1 |    76 |
    | gfrjy6   |    1 | 43255 |
    +----------+------+-------+
    6 rows in set (0.00 sec)mysql> select *,(win*3)-(lost*1) as points from a;
    +----------+------+-------+--------+
    | name     | win  | lost  | points |
    +----------+------+-------+--------+
    | dfnfdk   |   43 |    34 |     95 |
    | fgre     |   23 |    76 |     -7 |
    | gfr      |   56 |    43 |    125 |
    | dujfnfdk |    4 |    34 |    -22 |
    | fgddre   |    1 |    76 |    -73 |
    | gfrjy6   |    1 | 43255 | -43252 |
    +----------+------+-------+--------+
    6 rows in set (0.00 sec)mysql> desc a;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(30) | YES  |     | NULL    |       |
    | win   | int(11)     | YES  |     | NULL    |       |
    | lost  | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    没出现lz所说的情况哦!
      

  2.   

    应该不会有这样的情况啊
    你试下把相应的语句拿到mysql客户端上面直接执行看看是否结果正确吧
      

  3.   

    检查你的字段类型 范围扩大int类型是unsigned去掉该连个字段标志试试