MySQL automatic string to integer casting in where clause?

前端 未结 2 1423
北荒
北荒 2020-12-07 04:36

I am not new to MySQL but a strange situation happened in my code today coincidently which got me surprised. Can someone explain why this gives me identical results?

相关标签:
2条回答
  • 2020-12-07 04:47

    MySQL has to make a conversion to make a compare betwen 2 different types. It tries to make the string to an int and get the digits from the string starting from the beginning.

    It you had for instance

    'ABC12'
    

    the result of the string conversion to int would be 0

    0 讨论(0)
  • 2020-12-07 05:02

    From MySQL docs:

    When an operator is used with operands of different types, type conversion occurs to make the operands compatible

    Documentation

    So basically, '12ABC' is cast to 12.

    0 讨论(0)
提交回复
热议问题