如果任何记录满足条件,则sql忽略记录集

时间:2017-11-26 21:22:18

标签: mysql sql select

如果任何记录符合条件,我会尝试忽略一组记录。在我的情况下,我想忽略包含空值的记录集。这就是我想要做的。

SELECT * FROM table1 where column2 = 39 and (get rid of all set of column4 with null);

我认为在阅读其他想法后这会奏效。

SELECT *
FROM table1
WHERE column2 = 39 and column4 NOT IN (
    SELECT end_date
    FROM table1
    WHERE column2 = 39 and column4 is not NULL
);

以下是我现在收到的数据示例。

|    74  |   39 | 1980-11-05 | 1995-03-11 |
|    80  |   39 | 1982-03-23 | 1984-07-12 |
|    10  |   39 | 1988-07-17 | 2005-06-11 |
|    10  |   39 | 2016-11-09 | NULL       |

以下是我完成后希望数据显示的示例。我希望最后两个消失,因为column1中的主键在column4中具有空值。

|    74  |   39 | 1980-11-05 | 1995-03-11 |
|    80  |   39 | 1982-03-23 | 1984-07-12 |

1 个答案:

答案 0 :(得分:1)

您对not in运算符有正确的想法,您只需要使用正确的列:

SELECT *
FROM   table1
WHERE  column2 = 39 AND 
       id NOT IN (SELECT id
                  FROM   table1
                  WHERE  column2 = 39 AND column4 IS NULL)