2014-02-26 58 views
-1

我已經有一個條件已經爲MySQL刪除查詢,但我也試圖確保它不會執行,如果值爲空。刪除MySQL中的值不爲空

I.e.

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

我想看看還有什麼我不得不做的添加,id2的值不應該爲空。有沒有辦法做到這一點?似乎沒有一個標準的方法來做到這一點與null,至少不是「分組依據」部分。

我不想刪除非空的所有行。我只是想確保我沒有刪除id2爲空的任何行。

I.e.如果id2沒有被填充給任何給定的行(不管其他什麼),那行不應該被刪除。

+0

你是否想要確保id不是null或者id2不爲null? – steinmas

+0

「GROUP BY」用於合併結果集,因此在「DELETE」的上下文中沒有意義。你是不是指'WHERE id2不是NULL'? – tadman

+0

id2不爲空。 id2是不會爲每一行分配的計算值。 –

回答

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]