SQL删除整行

时间:2013-08-07 13:33:09

标签: sql

假设我有这张表:

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

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

DELETE FROM table_name
WHERE [condition];

但是因为我不想删除所有记录,所以我必须写一些条件......

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

2 个答案:

答案 0 :(得分:2)

delete from your_table
limit 1, 1
如果数据库按照不保证的顺序传递数据,

将删除第二行。

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

delete from your_table
order by name
limit 1, 1

答案 1 :(得分: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子句中定义您喜欢的顺序,以便删除正确的第2行。

修改

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