(SQL) 删除除最新行以外的所有行

Tra*_*wlr 2 mysql sql sql-delete

我有一个问题,即我要从表中删除除最新行之外的所有行。我不太了解如何构造适当的查询。

表结构的外观:

| column1 | column2 | column3 | column4 |
| --------|---------|---------|---------|
| aaa     | aaa     | aaa     | aaa     | 
| bbb     | bbb     | bbb     | bbb     |
| ccc     | ccc     | ccc     | ccc     |
Run Code Online (Sandbox Code Playgroud)

假设第 3 行是最后添加的,这是最新的。查询后:

| column1 | column2 | column3 | column4 |
| --------|---------|---------|---------|
| ccc     | ccc     | ccc     | ccc     |
Run Code Online (Sandbox Code Playgroud)

Cla*_*idu 5

如果要删除所有行,SQL 是:

Delete  from theTable;
Run Code Online (Sandbox Code Playgroud)

如果你想排除最新的,希望你有一个像这样写的id:

Delete  from theTable where id <> (Select max (id) from theTable)
Run Code Online (Sandbox Code Playgroud)