当前位置: 首页 > 知识库问答 >
问题:

mysql - 数据库中如何删除特定字段相同但某列值为空的行(保留该字段非空的行)?

司寇昱
2023-07-19

数据库的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

上表中,name张三的行有两条,除了pid不同(一条为NULL,一条不为NULL),其他字段都是重复的,如何将creditcompanynamephoneid字段相同的情况下,删除pid为空的记录,只保留pid不为空的记录?
表中除了 creditcompanynamephoneidpid等字段外,还有其他字段,其他字段是否重复不纳入删除条件。

共有1个答案

金阳曜
2023-07-19
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);
 类似资料:
  • 问题内容: 我想计算一个特定字段集的多少字段在mysql中为空,我找到了一些示例,但它们都遍历整个表。 基本上我有8个领域 listing_photo_1到listing_photo_8,我想获取其中已填充的数量。 我试过了: 结果是: 为了澄清我期望的结果: listing_photo_1:已填满 listing_photo_2:已填满 listing_photo_3:已填满 listing_p

  • 我在MySQL中的查询有问题。我的表有4列,看起来如下所示: 和是来自不同表的外键。 我只想删除一行: 它出现了两次,所以我只想删除它。 我尝试了以下查询: 但它将删除这两个(因为它们是重复的)。有什么关于解决这个问题的提示吗?

  • 我想删除列为空/nan的所有行。做这件事的有效方法是什么?

  • 问题内容: 我有一个csv文件。我读了: 它的输出如下: 我想删除列为空/ NaN的所有行。什么是有效的方法? 问题答案: 使用带有参数的指定检查列S: 用另一种解决方案和: 另一种选择: 时机

  • 本文向大家介绍如果在MySQL中为空,如何使用特定值更新字段?,包括了如果在MySQL中为空,如何使用特定值更新字段?的使用技巧和注意事项,需要的朋友参考一下 要更新字段为空,请使用IS NULL属性和UPDATE命令。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是查询以更新字段(如果该字段在MySQL中为空)- 让我

  • 问题内容: 我有一个包含数千条记录的数据库,我需要精简其中一个字段以确保它仅包含某些字符(字母数字,空格和单引号)。我可以使用什么SQL从整个数据库的该字段中剥离任何其他字符(例如斜杠等)? 问题答案: 那是一个很好的起点。