删除MySQL中非空的值

时间:2014-02-26 19:20:48

标签: mysql sql database

我已经有了MySQL删除查询的条件,但是我也试图确保如果值为null则不执行它。

DELETE FROM table WHERE id (some quality here) GROUP BY id2

我试图看看我还需要做些什么来补充id2的值不应为null。有没有办法做到这一点?似乎没有一种标准方法可以使用is null,至少不使用“Group by”部分。

我不想删除所有非空行。我只是想确保我没有删除id2为null的任何行。

即。如果没有为任何给定的行填充id2(无论其他什么),则不应删除该行。

1 个答案:

答案 0 :(得分:2)

只需添加ANDIS NOT NULL的其他条件:

DELETE FROM table WHERE id (some quality here) AND id2 IS NOT NULL

请注意,您无需在此处对行进行分组。事实上,you can't use GROUP BY in a DELETE statement, per the manual

Single-table syntax:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [PARTITION (partition_name,...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]