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

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL大表中重復(fù)字段的高效率查詢方法

2024-07-24 13:01:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
MySQL大表重復(fù)字段應(yīng)該如何查詢到呢?這是很多人都遇到的問(wèn)題,下面就教您一個(gè)MySQL大表重復(fù)字段的查詢方法,供您參考。

數(shù)據(jù)庫(kù)中有個(gè)大表,需要查找其中的名字有重復(fù)的記錄id,以便比較。
如果僅僅是查找數(shù)據(jù)庫(kù)中name不重復(fù)的字段,很容易

復(fù)制代碼 代碼如下:


SELECT min(`id`),`name`
FROM `table`
GROUP BY `name`;


但是這樣并不能得到說(shuō)有重復(fù)字段的id值。(只得到了最小的一個(gè)id值)
查詢哪些字段是重復(fù)的也容易

復(fù)制代碼 代碼如下:


SELECT `name`,count(`name`) as count
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
ORDER BY count DESC;


但是要一次查詢到重復(fù)字段的id值,就必須使用子查詢了,于是使用下面的語(yǔ)句來(lái)實(shí)現(xiàn)MySQL大表重復(fù)字段查詢。

復(fù)制代碼 代碼如下:


SELECT `id`,`name`
FROM `table`
WHERE `name` in (
SELECT `name`
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
);


但是這條語(yǔ)句在mysql中效率太差,感覺(jué)mysql并沒(méi)有為子查詢生成臨時(shí)表。
于是使用先建立臨時(shí)表

復(fù)制代碼 代碼如下:


create table `tmptable` as (
SELECT `name`
FROM `table`
GROUP BY `name` HAVING count(`name`) >1
);


然后使用多表連接查詢

復(fù)制代碼 代碼如下:


SELECT a.`id`, a.`name`
FROM `table` a, `tmptable` t
WHERE a.`name` = t.`name`;


結(jié)果這次結(jié)果很快就出來(lái)了。

用 distinct去重復(fù)

復(fù)制代碼 代碼如下:


SELECT distinct a.`id`, a.`name`
FROM `table` a, `tmptable` t
WHERE a.`name` = t.`name`;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潼南县| 监利县| 安顺市| 桐柏县| 栾城县| 凤庆县| 鸡东县| 宣武区| 隆化县| 高平市| 宝应县| 丹阳市| 英德市| 铁岭市| 高安市| 广南县| 马关县| 称多县| 惠来县| 肥西县| 万山特区| 霞浦县| 井陉县| 东源县| 桐庐县| 娱乐| 迁西县| 济宁市| 威信县| 四平市| 芜湖市| 莱阳市| 扎赉特旗| 南皮县| 南汇区| 卫辉市| 鲁甸县| 保德县| 兖州市| 陇川县| 花垣县|