如何更新倒数第二行?

时间:2012-07-16 18:43:12

标签: php mysql

在给定一组条件的情况下,我需要更新表中的倒数第二行。如果是SELECT查询,它将如下所示:

SELECT col_1 FROM table_1 WHERE id = id_# ORDER BY timestamp_col DESC LIMIT  1,1

但是,当我执行以下操作时出现错误,但这是我想要的行为:

UPDATE table_1 SET col_1 = value_# ORDER BY timestamp_col DESC LIMIT 1,1

我知道我可以写这个

UPDATE table_1 SET col_1 = value_# ORDER BY timestamp_col DESC LIMIT 1

但是我无法弄清楚如何在给定条件的情况下更新倒数第二行。

更新倒数第二行的正确查询是什么?

1 个答案:

答案 0 :(得分:2)

MySQL不支持UPDATEDELETE操作的LIMIT子句中的“偏移”功能。

SELECT语句支持

所以你可以做的就是在已加入的子选择中包含偏移LIMIT选项, 然后 仅更新{{{ 1}}和id等于加入的timestamp_colid,如此:

timestamp_col