在組合中找到重複的資料
挺有意思的一個需求.
實驗初始化一個表.
-
-
CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` int(11) DEFAULT NULL, `c2` int(11) DEFAULT NULL, `c3` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ; INSERT INTO `t` VALUES (1,1,2,3),(2,1,34,32),(3,23,42,2),(4,2,2,4),(5,2,3,3),(6,1,321,32),(7,,2,4),(8,1,2,99);
實驗要求找出c1,c2,c3三個欄位中,任意兩個欄位有重複的記錄.
第一種方式
-
-
select t2.* from t t2 inner join ( select 1 type,c1 v1 ,c2 v2,count(*) from t group by c1,c2 havingcount(*)>1 union all select 2,c2,c3,count(*) from t group by c2,c3 having count(*)>1 union all select 3,c1,c3,count(*) from t group by c1,c3 having count(*)>1 ) t1 on ( case t1.type when 1 then t1.v1=t2.c1 and t1.v2=t2.c2 when 2 then t1.v1=t2.c2 and t1.v2=t2.c3 when 3 then t1.v1=t2.c1 and t1.v2=t2.c3 end );
第二種方式,需要用數字輔助表了
http://blog.itpub.net/29254281/viewspace-1362897/
-
-
select * from t where id in ( select substring_index(substring_index(idlist,',',nums.id),',',-1) fromnums, ( select nid,v,group_concat(tid) idlist from ( select t.id tid,nums.id nid, case nums.id when 1 then concat(c1,',',c2) when 2 then concat(c2,',',c3) when 3 then concat(c1,',',c3) end v from nums,t where nums.id <=3 ) t1 group by nid,v having count(*)>1 ) t2 where nums.id<=(length(idlist) - length(replace(idlist,',',''))+1) );
兩種方式貌似都可以.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1788751/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 列組合資料去重複值
- 無重複字串的排列組合字串
- 如何在 Linux 中找到並刪除重複檔案Linux
- mongodb去除重複的資料MongoDB
- 【力扣】組合總和3(組合的去重)力扣
- mysql查詢表裡的重複資料方法和刪除重複資料MySql
- MySQL 查詢重複的資料MySql
- 刪除重複資料
- mysql 清除重複資料MySql
- Oracle:重複資料去重,只取最新的一條資料Oracle
- 組合資料型別資料型別
- 在MySQL資料庫中,這4種方式可以避免重複的插入資料!MySql資料庫
- MySQL資料庫行去重複和列去重複MySql資料庫
- dataset 判斷整列是否有重複,找出重複資料
- json字串返回的資料有重複的資料JSON字串
- 資料檢視的重複問題
- Java 去掉字串中的重複資料Java字串
- leetcode 面試題08.08. 有重複字串的排列組合LeetCode面試題字串
- mongodb刪除重複資料MongoDB
- mysql避免插入重複資料MySql
- MySQL 處理重複資料MySql
- mongodb如何去除重複資料MongoDB
- MySQL刪除重複資料MySql
- Oracle 重複資料處理Oracle
- 測試去除重複資料
- 資料處理之去除重複資料
- C# datatable中重複資料去重C#
- Oracle查詢重複資料與刪除重複記錄Oracle
- 複合條件查詢的重構
- Oracle中刪除重複資料的SqlOracleSQL
- mysql 刪除表中重複的資料MySql
- php資料庫資料如何去除重複資料呢?PHP資料庫
- 分散式資料庫如何控制資料重複 ?分散式資料庫
- Oracle查詢重複資料與刪除重複記錄方法Oracle
- excel 查詢重複資料,且能提示那行與那行重複Excel
- 刪除表裡重複資料
- 兩個list取出重複資料
- sqlserver中刪除重複資料SQLServer