亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


如何刪除數據庫中重復字段且特定列為空的行?


avatar
小浪云 2024-11-10 196

如何刪除數據庫中重復字段且特定列為空的行?

如何刪除數據庫重復字段且特定列為空的行

在關系型數據庫中,當需要刪除具有特定字段重復但同時另一列值為 null 的行時,可以使用 sql 查詢。

考慮以下場景:

數據的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

目標是刪除credit、company、name、phone和id字段相同但pid為空的行,而保留pid不為空的行。

解決方案:

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 );
登錄后復制

此查詢使用以下步驟:

  1. 從datas表中選擇所有pid為空的行。
  2. 使用in子查詢從pid不為空的行中選擇credit、company、name、phone和id字段的組合。
  3. 刪除與子查詢中選擇的組合匹配的pid為空的行。

執行此查詢將刪除以下行:

credit company name phone id pid
99284 傳媒有限公司 李四 9894 703e16 null

保留以下行:

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

相關閱讀