如何更新SQL数据库表中的第n行?

时间:2014-08-01 15:38:52

标签: mysql sql

如何只更新表格中的第n行?

例如,要更新第二行,我尝试使用UPDATE和LIMIT,但它给了我一个错误。

 UPDATE database_table
 SET field = 'new_value'
 LIMIT 0, 1

有办法吗?

2 个答案:

答案 0 :(得分:2)

如果你有一个主键和一个你想订购的列(要获得第n行),你可以这样做:

UPDATE database_table
SET field = 'new_value' 
WHERE primary_key IN (
    SELECT primary_key
    FROM database_table
    ORDER BY some_date_column 
    LIMIT n - 1, 1
)

编辑:我应该添加一个警告。这个答案可能在技术上是正确的,但你可能错误地使用它。我无法想象你实际想要更新表的nth行的太多场景。通常,您应该只根据主键更新表。如果多个用户(甚至是同一用户的多个会话)同时使用它,则更新第n行可能会破坏您的应用。

真正的答案是您应该根据主键更改代码以进行更新。

答案 1 :(得分:-1)

您需要某种ID,然后执行以下操作:

UPDATE database_table SET field = 'new_value' WHERE id = 2