如何只更新表格中的第n行?
例如,要更新第二行,我尝试使用UPDATE和LIMIT,但它给了我一个错误。
UPDATE database_table
SET field = 'new_value'
LIMIT 0, 1
有办法吗?
答案 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