0

假设我有这张桌子:

Name | Age | Gender
Jimmy| 166 | Male
Nicki| 0   | Female

现在我想在不知道任何值的情况下删除第二行。我只熟悉这个命令:

DELETE FROM table_name
WHERE [condition];

但是由于我不想删除所有记录,所以我必须在条件中写一些东西......

那么我该怎么做呢?如何在不知道任何值的情况下仅删除第二行?

4

2 回答 2

2
delete from your_table
limit 1, 1

如果数据库按此顺序交付数据,则将删除第二行。

但是,如果有条件或您有特定的订单,您只能删除特定的行。

delete from your_table
order by name
limit 1, 1
于 2013-08-07T13:34:38.803 回答
2

如果您使用的是 SQL Server

DECLARE @RowToDelete AS INT
@RowToDelete = 2

WITH MyCTE AS
(
    SELECT *,
           ROW_NUMBER() OVER(ORDER BY NAME,AGE,GENDER) AS ROWNUM
    FROM Table
)

DELETE FROM MyCTE
WHERE  ROWNUM = @RowToDelete

确保在 OVER 子句中定义了您喜欢的 Order,以便删除正确的第二行。

编辑

现在您可以选择要删除的行...

于 2013-08-07T13:35:35.043 回答