【问题标题】:MySQL - results from 'SELECT WHERE STH' and 'SELECT WHERE NOT STH' don't sum to full tableMySQL - 'SELECT WHERE STH' 和 'SELECT WHERE NOT STH' 的结果不能汇总到全表
【发布时间】:2011-05-31 04:10:11
【问题描述】:

这两个查询的结果怎么可能:

SELECT * FROM `workers` WHERE `name` = 'Smith`

SELECT * FROM `workers` WHERE NOT `name` = 'Smith`

不求和整个表workers

【问题讨论】:

    标签: sql mysql select where


    【解决方案1】:

    因为name 字段中的NULL 不会进入任一查询。

    SQL 使用的三元逻辑中,NULL = 'Smith'NOT NULL = 'Smith' 都计算为 NULL 并被过滤掉。

    使用NULL-安全比较运算符,<=>

    SELECT * FROM `workers` WHERE `name` <=> 'Smith`
    

    SELECT * FROM `workers` WHERE NOT `name` <=> 'Smith`
    

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2011-06-28
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多