首页 > 文章列表 > 如何删除数据库中特定字段相同但特定列值为空的行?

如何删除数据库中特定字段相同但特定列值为空的行?

382 2024-12-11

如何删除数据库中特定字段相同但特定列值为空的行?

如何删除数据库中特定字段相同但特定列值为空的行

数据库中的表通常包含多个字段。如果某个字段值为空,而其他字段值相同,则可能需要删除这些空值行,以保持数据的完整性。

在提供的示例中,datas表中有以下数据:

creditcompanynamephoneidpid
99284传媒有限公司张三393021d4f7null
99284传媒有限公司张三393021d4f76ec897
99284传媒有限公司王五18952c6dcd21d4f7
99284传媒有限公司王五1895a8c70b21d4f7
99284传媒有限公司李四989433db0921d4f7
99284传媒有限公司李四9894703e16null
99284传媒有限公司李四98940faa5421d4f7

目标是删除pid为空的name为张三的行,同时保留pid不为空的行。可以使用以下 sql 查询:

DELETE FROM datas 
WHERE pid IS NULL AND (credit, company, name, phone, id, rootid) IN (
    SELECT credit, company, name, phone, id, rootid 
    FROM datas 
    WHERE pid IS NOT NULL
);

此查询将删除datas表中pid字段为空且credit、company、name、phone、id和rootid字段值与pid不为空的行相同的行。

来源:1731068450