假设我有这张表:
Name | Age | Gender
Jimmy| 166 | Male
Nicki| 0 | Female
现在我想在不知道任何值的情况下删除第二行。 我只熟悉这个命令:
DELETE FROM table_name
WHERE [condition];
但是因为我不想删除所有记录,所以我必须写一些条件......
那我该怎么办?如何在不知道任何值的情况下仅删除第二行?
答案 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行。
修改强>
现在您可以选择要删除的行...