MySQL 特性:字符串等于0?



  • 在MySQL中如果运行以下语句,

    Select 'not agree' =0, 'not agree' =2
    

    会返回
    12ee8519-06d0-4d5e-b6f4-2c0d4d5c668a-image.png

    但是这个问题不会在SQLServer中出现。

    参考这个解答StackOverFlow,原因是MySQL在字符串和数字的比较中,会自动把字符串转换成数字。

    • 如果这个字符串不以数字开头,那么MySQL会把它转换成0。
    • 如果这个字符串以数字开头,那么字符串会被转换成开头的几个数字。例如
    SELECT '11ABC' =11;
    

    会返回1(代表TRUE)
    1ad44393-d26d-4db6-8dcf-8c4bec777a8c-image.png


登录后回复