我想问的是在MySQL中调用 :
select 0='x6'; 结果为什么是真啊?我想了好久也没想出来,在网上也没查到,请会的朋友指教下,

解决方案 »

  1.   

    这里有一个强制转换的过程:
    mysql> select cast('x6' as decimal);
    +-----------------------+
    | cast('x6' as decimal) |
    +-----------------------+
    |                     0 |
    +-----------------------+
    1 row in set, 1 warning (0.00 sec)所以相等。
      

  2.   

    MYSQL会优先向数字型转换。所以X6被转换为数字时变成0了。
      

  3.   

    我知道是mysql自动转换成数字的,
    但是具体它是怎么把‘X6’ 变成0的,还有就是为什么把‘x6’ 看成 decimal类型,为什么不看成别的其他类型来cast ?
      

  4.   

    那我还想问下,对于这个sql语句 :select cast'6x' as decimal);为什么会转成6啊?
      

  5.   

    那我还想问下,对于这个sql语句 :select cast('6x' as decimal);为什么会转成6啊?