『大发网盟』

收益高、结算快、超稳定,直营无中间商差价

『156资源网』

全网最早的资源,实力雄厚,速度超快,超稳定

『78免费网盘』

永久免费的多媒体转码与云分发平台,无限存储

『最快资源网』

全网唯一一家全亚洲服务器加速播放,速度超快

合并重复数据

dayer 3月前 544

想必大家采集多种资源站都会遇到重复数据吧,一般都是选择不管,但是对于强迫症的人感觉很难受。所以我就教大家如何合并重复数据。,以下代码使用C#,别的语言代码大同小异,主要是sql语句。

 DataTable dt1 = Mysql.GetTable("SELECT v_name FROM sea_data GROUP BY v_name HAVING COUNT(*)>1");
            for (int i = 0; i < dt1.Rows.Count; i++)
            {
                string name = dt1.Rows[i][0].ToString();
                DataTable dt2 = Mysql.GetTable("SELECT v_id,body FROM sea_content WHERE v_id IN (SELECT v_id FROM sea_data WHERE v_name='" + name + "') ORDER BY v_id DESC");
                string body = "";
                string vid = "";
                string playbody = "";
                string body1 = "";
                for (int j = 0; j < dt2.Rows.Count; j++)
                {
                    body = dt2.Rows[j][1].ToString();
                    vid = dt2.Rows[j][0].ToString();
                    if (body != "")
                    {
                        break;
                    }
                }
                List<string> sqlList = new List<string>();
                DataTable dt3 = Mysql.GetTable("SELECT v_id,body,body1 FROM sea_playdata WHERE v_id IN (SELECT v_id FROM sea_data WHERE v_name='" + name + "')");
                for (int k = 0; k < dt3.Rows.Count; k++)
                {
                    string id = dt3.Rows[k][0].ToString();
                    string bd = dt3.Rows[k][2].ToString();
                    if (bd != "")
                    {
                        body1 = bd;
                    }
                    if (id != vid)
                    {
                        sqlList.Add("DELETE FROM sea_content where v_id=" + id + "");
                        sqlList.Add("DELETE FROM sea_data where v_id=" + id + "");
                        sqlList.Add("DELETE FROM sea_playdata where v_id=" + id + "");
                    }
                    playbody = playbody + dt3.Rows[k][1].ToString() + "$$$";
                }
                playbody = playbody.Substring(0, playbody.Length - 3);
                sqlList.Add("update sea_playdata set body='" + playbody + "',body1='" + body1 + "' where v_id =" + vid + "");
                Mysql.ExecuteSqlList(sqlList);//使用事务进行操作,以防万一
            }


最新回复 (0)
返回
发新帖