SQL刪除id號不同,其他都相同的學生冗餘資訊

2021-06-02 06:21:23 字數 1062 閱讀 3670

.學生表 如下:

id號 學號 姓名 課程編號 課程名稱 分數

1 2005001 張三 0001 數學 69

2 2005002 李四 0001 數學 89

3 2005001 張三 0001 數學 69

a: delete from tablename where id號 not in(select min(id號) from

tablename group by 學號,姓名,課程編號,課程名稱,分數)

實驗:create table student2(id int auto_increment primary key,code

varchar(20),name varchar(20));

insert into student2

values(null,'2005001','張三'),(null,'2005002','李四'),(null,'2005001','張三');

//如下語句,mysql報告錯誤,可能刪除依賴後面統計語句,而刪除又導致統計語句結果不一致。

delete from student2 where id not in(select min(id) from

student2 group by name);

//但是,如下語句沒有問題:

select * from student2 where id not in(select min(id) from

student2 group by name);

//於是,我想先把分組的結果做成虛表,然後從虛表中選出結果,最後再將結果作為刪除的條件資料。

delete from student2 where id not in(select mid from (select

min(id) mid

from student2 group by name) as t);

或者:delete from student2 where id not in(select min(id) from

(select * from s

tudent2) as t group by t.name);

主鍵ID流水號

mysql語句 比如想生成pkpk 0000這樣的流水號 pkpk0000,pkpk0001,pkpk0002 利用mysql最大值函式,從第五位開始擷取。select max substring a.book id,5 as maxid from oa xz book 1 a override p...

mysql主鍵id不連續

唯一鍵衝突 事務回滾 批量插入時申請主鍵的策略造成mysql中自增主鍵不連續 批量申請自增主鍵時它的申請數量是乘2遞增的,比如插入4條資料,第一條申請1個主鍵 第二個申請2個滿足第二和三條資料插入時使用,第四條資料插入時還需要再申請一次,這次會分配4個主鍵,但是只用了1個,有3個就浪費了,並出現了i...

刪除除了 id 號不同,其他都相同的學生冗餘資訊

刪除除了 id 號不同,其他都相同的學生冗餘資訊 2.學生表 如下 id 號 學號 姓名 課程編號 課程名稱 分數 1 2005001 張三 0001 數學 69 2 2005002 李四 0001 數學 89 3 2005001 張三 0001 數學 69 create table student...