【问题标题】:mysql string conversion return 0mysql字符串转换返回0
【发布时间】:2012-03-31 02:21:36
【问题描述】:

为什么select 'aaa' =0 返回 1 (TRUE) 如果我有一张这样的桌子

userid | pass

user1  | pas1

如果我查询:

select from table where userid = 0 and pass =0 

它给了我所有的行?

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    MySQL 看到 'aaa' = 0 并自己思考:

    “我可以将 aaa 转换为整数,或者将 0 转换为字符串。”

    猜猜它和哪一个搭配?

    基本上发生的事情是 'aaa' 正在转换为整数,并且由于它不是有效的整数,所以它强制转换为 0。

    0 = 0 当然是真(或真 == 1)。

    我怀疑您的 userid 列也发生了同样的情况,但在不知道其值/数据类型的情况下,很难说。

    http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2018-12-24
      • 2011-02-02
      相关资源
      最近更新 更多