MySQL查询执行正常,但使用!= NULL时返回空结果集(假)。

说故事的人

我有以下结果集,我正在尝试向下钻取

+----+---------+---------------+---------------------+----------------------+---------------+-----------+------------------+------------------+
| id | auth_id | trusts_number | buy_sell_actions_id | corporate_actions_id | fx_actions_id | submitted |    created_at    |    updated_at    |
+----+---------+---------------+---------------------+----------------------+---------------+-----------+------------------+------------------+
|  2 |       6 | N100723       | 2                   | NULL                 | NULL          |         0 | 08/05/2015 11:30 | 08/05/2015 15:32 |
|  5 |       6 | N100723       | NULL                | NULL                 | 1             |         0 | 08/05/2015 15:10 | 08/05/2015 15:10 |
|  6 |       6 | N100723       | NULL                | NULL                 | 2             |         1 | 08/05/2015 15:12 | 08/05/2015 15:41 |
+----+---------+---------------+---------------------+----------------------+---------------+-----------+------------------+------------------+

该结果集是通过查询生成的

SELECT * FROM actions WHERE auth_id = 6 AND trusts_number = 'N100723'

我也想摆脱fx_actions为NULL的任何字段,因此我将查询更改为

SELECT * FROM actions WHERE auth_id = 6 AND trusts_number = 'N100723' AND fx_actions_id != NULL

但是,这将返回一个空结果集。我以前从未在MySQL中使用过“负”查询参数,因此不确定是否应采用其他语法还是什么?

任何帮助将非常感激。

GolezTrol

正常的比较运算符与不能很好地配合NULL双方Something = NULLSomething != NULL会返回“未知”,这导致的结果将被省略的行。使用特殊运算符IS NULLIS NOT NULL而不是:

SELECT * FROM actions 
WHERE auth_id = 6 
  AND trusts_number = 'N100723' 
  AND fx_actions_id IS NOT NULL

有关NULL及其背景的维基百科

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章