記錄乙個比較有趣的題目,以下建表語句:
create table
test(
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...