选择/更新最后输入的sql行

时间:2020-01-25 02:48:59

标签: sql sqlite

我觉得这是一个非常简单的问题,但是我使用sqlite3尝试解决了许多小时。

我需要做的就是检索输入到表中的最后一行数据,并用一个值更新它。

我尝试过c.execute("select max(timestamp) from sensor_data"),它只会返回最近的时间戳。

下面的代码是我的表名和列。

sensor_data(ph, air_temp, water_temp, humidity, water_level, timestamp)

2 个答案:

答案 0 :(得分:2)

您需要SELECT拥有最大timestamp的行,您可以使用此查询进行操作:

SELECT *
FROM sensor_data
WHERE timestamp = (SELECT MAX(timestamp) FROM sensor_data)

或更简单地

SELECT *
FROM sensor_data
ORDER BY timestamp DESC 
LIMIT 1

要更新此行,请使用类似

UPDATE sensor_data
SET air_temp = 20
WHERE timestamp = (SELECT MAX(timestamp) FROM sensor_data)

答案 1 :(得分:0)

您可以使用:参考文档 https://www.sqlite.org/lang_corefunc.html#last_insert_rowid

SELECT last_insert_rowid()