Hello! 欢迎来到小浪云!


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


avatar
小浪云 2024-11-09 182

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

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

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

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

credit company name phone id pid
99284 传媒有限公司 张三 3930 21d4f7 null
99284 传媒有限公司 张三 3930 21d4f7 6ec897
99284 传媒有限公司 王五 1895 2c6dcd 21d4f7
99284 传媒有限公司 王五 1895 a8c70b 21d4f7
99284 传媒有限公司 李四 9894 33db09 21d4f7
99284 传媒有限公司 李四 9894 703e16 null
99284 传媒有限公司 李四 9894 0faa54 21d4f7

目标是删除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不为空的行相同的行。

相关阅读