SELECT * from se_contractcust_rel where REL_ID=160816071200000009;
返回结果
rel_id                                       contract_id                            cust_id
160816071200000009 160816071200000008 100000271039
160816071200000015 160816071200000014 100000271039
结果多出来一条,虽然找到问题,rel_id类型是varchar,查询条件不标准,但是为什么会出现这种情况,mysql中是什么机制导致的

解决方案 »

  1.   

    rel_id类型是varchar,你的查询条件应当加引号, where REL_ID='160816071200000009';
      

  2.   

    他们会转化成浮点数是相等的
    mysql> select '160816071200000009'+0.0,'160816071200000015'+0.0;
    +--------------------------+--------------------------+
    | '160816071200000009'+0.0 | '160816071200000015'+0.0 |
    +--------------------------+--------------------------+
    |           1.608160712e17 |           1.608160712e17 |
    +--------------------------+--------------------------+
    1 row in set (0.00 sec)mysql>