国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MYSQL中GROUP分組去除重復數據

2024-07-24 12:39:29
字體:
來源:轉載
供稿:網友

用mysql group分組去除重復數據小編還是頭一次,以前都是使用distinct來過濾了,今天我們來介紹另一種另類的處理方法.

GROUP分組去除重復數據

  1. /** 
  2.  * 清除同一專題中重復導入的數據 
  3.  * @author tanteng 
  4.  * @date 2014.07.27 
  5.  */ 
  6. public function fuck_repeat(){ 
  7.  set_time_limit(0); 
  8.  $sql = "SELECT `id` FROM `v95_special_content` GROUP BY `specialid`,`curl` HAVING COUNT(`curl`)>1 "
  9.  $result = $this->db->query($sql); 
  10.  while ($r = mysql_fetch_assoc($result)) { 
  11.   $ids[] = $r['id']; //開源軟件:Vevb.com 
  12.  } 
  13.  $ids = implode(","$ids); 
  14.  if (!$ids) { 
  15.   showmessage('沒有重復數據!',HTTP_REFERER);exit
  16.  } 
  17.  $sql2 = "DELETE from `v95_special_content` where `id` in($ids) "
  18.  $this->db->query($sql2); 
  19.  showmessage('執行成功,刪除了'.$this->db->affected_rows().'條重復數據!',HTTP_REFERER); 

我們分析一下這條sql語句:

SELECT `id` FROM `v95_special_content` GROUP BY `specialid`,`curl` HAVING COUNT(`curl`)>1

這里根據兩個字段進行了分組,分別是specialid和curl,就是說這兩個字段同時相同的作為條件查詢,having是group語句的條件,相當于where,后面就是計算這樣的條數.

利用mysql的group分組就實現了去除數據庫中多個字段相同的重復數據的操作.

補充:當然還可以使用distinct這個關鍵字來過濾掉多余的重復記錄只保留一條.

  1. table 
  2. id name 
  3. 1 a 
  4. 2 b 
  5. 3 c 
  6. 4 c 
  7. 5 b 
  8. select distinct name from table 
  9. //得到的結果是: 
  10. name 

好像達到效果了,可是,我想要得到的是id值呢?改一下查詢語句吧.

  1. select *, count(distinct name) from table group by name 
  2. //結果: 
  3. id name count(distinct name) 
  4. 1 a 1 
  5. 2 b 1 
  6. 3 c 1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延庆县| 凉山| 靖宇县| 凤凰县| 柳州市| 南溪县| 望谟县| 黔江区| 临猗县| 武威市| 吉水县| 蒙山县| 北海市| 墨脱县| 滦南县| 沽源县| 定兴县| 永登县| 林芝县| 当阳市| 余干县| 太仓市| 洮南市| 左贡县| 永定县| 沁水县| 大田县| 思南县| 井陉县| 封开县| 从江县| 乌鲁木齐市| 安远县| 和静县| 漳州市| 鸡泽县| 乡城县| 吉安县| 西藏| 安仁县| 玉门市|