如何从SQL中删除除一行之外的数据?

时间:2016-12-02 15:00:04

标签: mysql sql

我在表格中有一些行具有相同的number

如何删除除一行之外的所有行?

我的意思是:

 number
1 2
2 2
3 2
4 2

所以,我需要删除number = 2的所有行,但只留一行,例如:1 2

5 个答案:

答案 0 :(得分:2)

delete t from t inner join t t2 on t2.number = t.number and t2.id < t.id

答案 1 :(得分:1)

您可以执行类似

的操作
DELETE FROM your_table
WHERE (number2 = 2)
    AND (number1 <> 1);

答案 2 :(得分:0)

这将删除除第1行以外的所有行

delete from table_name t1 
where pk_col not in (select pk_col from table_name where number = t1.number limit 1)

假设     pk_col =主键col

答案 3 :(得分:0)

delete from t where number=.. and pk > (select min(pk) from t)

答案 4 :(得分:0)

假设我们在表tb1中有2列:

ID   Name
1    Akshay
2    Akshay 
3    Akshay

在此我要删除除ID 2

之外的所有行

所以我将把SQL语句编写为:

delete from tb1 where ID NOT LIKE 2

这将删除第二行以外的evey行。

希望这有帮助。