隨筆-8  評論-20  文章-4  trackbacks-0
          轉(zhuǎn)帖(http://www.cnblogs.com/cime63/archive/2008/06/19/1225134.html
          前一陣做了個(gè)會(huì)員系統(tǒng),又寫了個(gè)程序把以往的會(huì)員數(shù)據(jù)導(dǎo)入到SQL數(shù)據(jù)庫中.因?yàn)槟承┰驅(qū)Я撕脦妆?造成了某些重復(fù)的記錄存在.前兩天使用人員才發(fā)現(xiàn)問題,于是想辦法解決.
              搜啊搜,搜到了使用SQL句子刪除重復(fù)記錄的方法.又一次體會(huì)到了SQL的強(qiáng)大(其實(shí)是我的SQL水平太菜了而已).寫下來,加強(qiáng)記憶.
              會(huì)員數(shù)據(jù)需要用到的是下面三個(gè)字段:ID(自增),MemberName,MemberAddress.只要會(huì)員姓名與會(huì)員地址相同就認(rèn)為是重復(fù)記錄,重復(fù)記錄在刪除時(shí)只保留ID最大的那個(gè).SQL如下:
              
          delete MemberInfo where ID not in (
            
          select max(ID) from MemberInfo group by MemberName, MemberAddress)
              not in的效率可能會(huì)低些,但因?yàn)槭侵苯硬僮鲾?shù)據(jù)庫,所以這并不重要.這個(gè)句子還是非常的簡單有效的.
              
              在真正的刪除操作前,通常會(huì)先了解一下重復(fù)記錄的情況.可以使用下面的句子:
              
          SELECT COUNT(MemberName) AS TheCount, MemberName, MemberAddress
          FROM
           MemberInfo
          GROUP BY
           MemberName, MemberAddress
          HAVING (COUNT(*> 1)
              因?yàn)楣ぷ髦杏玫腟QL太簡單,以至于group by及having的用法都不了解,真是慚愧.
              P.S. 所有的內(nèi)容都來自于網(wǎng)絡(luò),沒有什么獨(dú)創(chuàng)的東西.發(fā)出來只是為了加強(qiáng)一下自己的記憶.
          posted on 2008-11-17 11:08 ju 閱讀(832) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類(7)

          隨筆檔案(8)

          文章分類(4)

          文章檔案(5)

          相冊

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 30322
          • 排名 - 1383

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁陕县| 玉山县| 南丹县| 五寨县| 治多县| 唐河县| 连山| 胶南市| 米易县| 包头市| 文山县| 山阴县| 衡水市| 阿尔山市| 木里| 芷江| 河北省| 秦皇岛市| 柯坪县| 石家庄市| 都兰县| 吉首市| 建昌县| 临猗县| 镇巴县| 宁阳县| 阿荣旗| 定边县| 章丘市| 庆阳市| 宝丰县| 静乐县| 潮州市| 元朗区| 瓦房店市| 湛江市| 贵州省| 镇坪县| 东乡| 石林| 通州市|