MySQL處理冗餘資訊(僅有主鍵不一致)

2021-10-01 13:43:25 字數 852 閱讀 2518

記錄乙個比較有趣的題目,以下建表語句:

create tabletest(idint(11) not null,peopleidint(11) default null,namevarchar(255) default null, primary key (id) ) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci

表中資料大致如此,滿足字段型別屬性即可

id peopleid name

1 101 蘋果

2 101 蘋果

3 202 香蕉

4 303 鴨梨

5 303 鴨梨

6 303 鴨梨

要求處理上面的表(刪除操作實現),得到表中每類水果只有一條記錄,同乙個人對應的記錄值主鍵id 要是最小的;以下是自己的一種實現思路,

delete from test where id not in( select * from( select min(id) from test group by peopleid)as temp_tab);

自己的想法是先選擇出peopleid最小的記錄,且水果名字/peopleid不會重複(使用分組實現),此時查出來的結果不能直接作為條件使用(select min(id) from test group by peopleid);此時查詢能夠得到符合條件的保留資料,但是因為其中id為主鍵,不能直接在條件中使用,所以要再次查詢;最後在執行刪除。

自增字段的處理一也是一樣的;

mysql冗餘索引 MySQL 冗餘和重複索引

冗餘和重複索引冗餘和重複索引的概念 mysql允許在相同列上建立多個索引,無論是有.冗餘和重複索引 冗餘和重複索引的概念 mysql允許在相同列上建立多個索引,無論是有意的還是無意的。mysql需要單獨維護重複的索引,香港虛擬主機,並且優化器在優化查詢的時候也需要逐個地進行考慮,香港虛擬主機,這會影...

mysql資料冗餘 MySQL冗餘資料的三種方案

一,為什麼要冗餘資料 網際網路資料量很大的業務場景,往往資料庫需要進行水平切分來降低單庫資料量。水平切分會有乙個patition key,通過patition key的查詢能夠直接定位到庫,但是非patition key上的查詢可能就需要掃瞄多個庫了。此時常見的架構設計方案,是使用資料冗餘這種反正規...

使用mysql,sql語言刪除冗餘資訊

這是表,我們需要操作的就是刪除除了學號不同,其它資訊都相同的冗餘資訊 思路 刪除 class3中的冗餘的stu id資訊,那麼接下來我們應該去篩選哪些stu id資訊是冗餘的,此時我們想到的就是利用group by語句進行分組,即select min stu id from class3 group...