假设我有这张桌子:
Name | Age | Gender
Jimmy| 166 | Male
Nicki| 0 | Female
现在我想在不知道任何值的情况下删除第二行。我只熟悉这个命令:
DELETE FROM table_name
WHERE [condition];
但是由于我不想删除所有记录,所以我必须在条件中写一些东西......
那么我该怎么做呢?如何在不知道任何值的情况下仅删除第二行?
假设我有这张桌子:
Name | Age | Gender
Jimmy| 166 | Male
Nicki| 0 | Female
现在我想在不知道任何值的情况下删除第二行。我只熟悉这个命令:
DELETE FROM table_name
WHERE [condition];
但是由于我不想删除所有记录,所以我必须在条件中写一些东西......
那么我该怎么做呢?如何在不知道任何值的情况下仅删除第二行?
delete from your_table
limit 1, 1
如果数据库按此顺序交付数据,则将删除第二行。
但是,如果有条件或您有特定的订单,您只能删除特定的行。
delete from your_table
order by name
limit 1, 1
如果您使用的是 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,以便删除正确的第二行。
编辑
现在您可以选择要删除的行...