【问题标题】:Difference between empty value ENUMs空值 ENUM 之间的差异
【发布时间】:2015-08-04 16:45:11
【问题描述】:

我所有东西的 review_type 的值都是空的(虽然不是 null)

review_type 是这样定义的 ENUM('','a','m','f')

所有 1108 条记录都是这样的

但是当我搜索 review_type 为空的记录时,1000 条记录没有返回。当我搜索非空评论类型的记录时,我得到 0。那 1000 条记录是怎么回事?这怎么可能?

SELECT id, review_type FROM stuff; -- 1108 records
SELECT id, review_type FROM stuff WHERE review_type=''; -- 108 records
SELECT id, review_type FROM stuff WHERE review_type!=''; -- 0 records
-- column type is defined as NOT NULL, but just to be sure:
SELECT id, review_type FROM stuff WHERE review_type IS NULL; -- 0 records

【问题讨论】:

  • MySQL enums empty value的可能重复
  • 您是否尝试过对 review_type 运行不同的查询。能否请您发布相同的输出?
  • @ShreyasChavan 有 2 条记录,两者的空值看起来相同(0 字节)

标签: mysql sql enums


【解决方案1】:

1000 条缺失记录的值为0

如果您将 ENUM 值设置为 0,它会得到一个空值,这与我定义的空值 ENUM('','a','m','f') 不同,后者的值为 1

有 2 个不同的空值。 '' 是我的,0 让我得到另一个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-03
    • 2013-08-23
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多