mysql如何去除重復(fù)項(xiàng)

這篇文章給大家分享的是有關(guān)MySQL如何去除重復(fù)項(xiàng)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、南部ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的南部網(wǎng)站制作公司

具體如下:

說到這個(gè)去重,腦仁不禁得一疼,尤其是出具量比較大的時(shí)候。畢竟咱不是專業(yè)的DB,所以嘞,只能自己弄一下適合自己去重方法了。

首先按照常規(guī)首段,使用having函數(shù)檢查重復(fù)項(xiàng),完事一個(gè)一個(gè)的刪除。不要問我having檢測(cè)重復(fù)項(xiàng)的sql咋寫,你懂得哈。。。這個(gè)在只有幾條重復(fù)的時(shí)候還可以。要是幾千上萬條不同數(shù)據(jù)重復(fù),那咋辦。。。

完事呢,咱就考慮了,用having函數(shù)查詢的時(shí)候,原始sql如下:

select `name`,count(*) as count from sentence group by `name` having count>1

大家可以運(yùn)行感覺下,在五百萬左右的數(shù)據(jù)時(shí),那速度,麻油。。。

但是嘞,咱在不考慮優(yōu)化它的運(yùn)行速度的前提下,來考慮使用這個(gè)語(yǔ)句來使我們?nèi)コ龜?shù)組中的重復(fù)項(xiàng)。首先,我們要知道,我們刪除重復(fù)數(shù)據(jù)的時(shí)候需要使用的數(shù)據(jù)有哪些。id是肯定的,再來呢,篩選的條件是吧。所以嘞,上面的sql查詢出來的數(shù)據(jù),缺少了啥,id。。。那我們加上這個(gè)字段查詢下試試哈:

select id,`name`,count(*) as count from sentence group by `name` having count>1

結(jié)果呢,就會(huì)顯示出來id,name,count這三個(gè)字段。具體效果大家可以自己運(yùn)行看下。根據(jù)這些數(shù)據(jù)咱們就可以進(jìn)行去除重復(fù)項(xiàng)的操作了。

具體的sql設(shè)計(jì)就是刪除id不是咱們查詢出來的id,但是name值是咱們查詢出來的值,因?yàn)樵蹅兊臄?shù)據(jù)不是一條,所以得經(jīng)過程序處理,把所有的id用逗號(hào)拼接起來,name值用引號(hào)和逗號(hào)處理下,完事就可以進(jìn)行使用了,示例呢就在下方:

delete from sentence where id not in(1,2,3) and name in('a','b','c')

如果數(shù)據(jù)過多的話,咱們可以寫成腳本,完事再進(jìn)行分批次操作。嘿嘿,到了這里,咱們就可以進(jìn)行去除重復(fù)項(xiàng)的操作了,但是這個(gè)速度么,始終是個(gè)困擾。接下來咱們就要考慮如何來優(yōu)化這個(gè)sql,讓它的速度上去,就算是大功告成了。

既然是提升咱們sql的運(yùn)行速度,按照常理來講,首先應(yīng)該想到的那就是索引。好唄,廢話不多說,咱們先建立索引。但是給那個(gè)字段建立所以呢???這又是個(gè)問題了。

這個(gè)原則上是在你name字段可以加以區(qū)分的字段上建立的。比如,我的name字段里面儲(chǔ)存的是一條條的品牌名稱,然后呢,我有一個(gè)industry字段是來存儲(chǔ)每個(gè)品牌的行業(yè)的,所以我就在我的industry字段上建立了索引。當(dāng)然,還有更加合適的,這個(gè)就看大家咋考慮了。廢話不多說,咱直接來看看我們優(yōu)化后的sql:

select id,`name`,count(*) as count from sentence where industry = '飲品' group by `name` having count>1

運(yùn)行結(jié)果如下:

mysql如何去除重復(fù)項(xiàng)

結(jié)果說明啥,說明咱們的索引有在使用哦。。。那速度,咱不說各位看官應(yīng)該也了解。完事咱們就可以再用程序把所有的id用逗號(hào)拼接起來,name值用引號(hào)和逗號(hào)處理下,完事就可以進(jìn)行那個(gè)去除重復(fù)項(xiàng)的大業(yè)了。效率明顯上升啊。。。

不過有的看官可能用的條件里面含有l(wèi)ike等會(huì)使索引失效的條件,那咱們還可以,把數(shù)據(jù)簡(jiǎn)單分類,完事分別檢測(cè)每個(gè)分類的數(shù)據(jù),全部查詢出來后,可以使用程序來檢查重復(fù)項(xiàng),并且取出刪除所需要的數(shù)據(jù)。

附:mysql rand查詢優(yōu)化&隨機(jī)查詢優(yōu)化

說起這個(gè)隨機(jī)查詢,大家都知道使用rand()函數(shù),但是當(dāng)數(shù)據(jù)量達(dá)到一定程度的時(shí)候,查詢效率就可想而知了。所以呢?我們不妨考慮下優(yōu)化這個(gè)查詢方案。

我的優(yōu)化方式為,通過程序來隨機(jī),再配合limit來取值。咱們記錄下大概思路哈。

首先查詢出符合條件的數(shù)據(jù)條數(shù),之后用PHP的rand函數(shù)來在這個(gè)數(shù)值范圍內(nèi)隨機(jī)取值,之后直接查詢就可以。

示例sql:

select count(*) from test where $where; (計(jì)算所需要的數(shù)據(jù)的總條數(shù))

$offset = rand(0,$count)

select * from test where $where limit $offset,1;   (查詢出所需數(shù)據(jù))

大家可以動(dòng)手試試。五百萬左右的數(shù)據(jù)情況下,查詢速度較之mysql的rand函數(shù)查詢方式快了最少十倍。

感謝各位的閱讀!關(guān)于“mysql如何去除重復(fù)項(xiàng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

文章名稱:mysql如何去除重復(fù)項(xiàng)
標(biāo)題來源:http://m.kartarina.com/article18/jededp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司微信公眾號(hào)移動(dòng)網(wǎng)站建設(shè)服務(wù)器托管網(wǎng)站內(nèi)鏈云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
主站蜘蛛池模板: 亚洲动漫精品无码av天堂| 国产综合无码一区二区辣椒| 亚洲中文字幕无码爆乳| 久久久久亚洲AV无码去区首| 久久亚洲精品无码播放| 无码人妻视频一区二区三区| 国产品无码一区二区三区在线 | 无码精品日韩中文字幕| 麻豆aⅴ精品无码一区二区| 精品无码成人网站久久久久久 | 人妻丰满AV无码久久不卡| 无码中文av有码中文av| 免费无遮挡无码永久视频| 精品无码三级在线观看视频| 亚洲乱人伦中文字幕无码| 色欲A∨无码蜜臀AV免费播| 无码人妻久久一区二区三区蜜桃| 日韩精品无码熟人妻视频| 国产免费无码一区二区| 一本色道无码道在线| 国产成人精品无码片区在线观看| 精品久久久无码人妻中文字幕| 免费无码又爽又刺激高潮软件| 精品国产AV无码一区二区三区| 91久久九九无码成人网站| 狠狠躁天天躁无码中文字幕| 亚洲AV无码一区二区三区鸳鸯影院| 无码视频一区二区三区在线观看| 欧洲精品无码一区二区三区在线播放| 永久免费AV无码国产网站| 久久久久久久亚洲Av无码| 性无码免费一区二区三区在线| 亚洲精品国产日韩无码AV永久免费网 | 久久久久亚洲av无码专区蜜芽 | 色欲A∨无码蜜臀AV免费播| 中文字幕乱妇无码AV在线| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 麻豆人妻少妇精品无码专区| 无码人妻一区二区三区兔费| 在人线av无码免费高潮喷水| 亚洲爆乳少妇无码激情|