Выбрать / обновить последнюю введенную строку sql - PullRequest
0 голосов
/ 25 января 2020

Мне кажется, что это очень простая проблема, но я пытался разобраться в этом в течение многих часов с помощью sqlite3.

Все, что мне нужно, - это извлечь последнюю строку ввода данных в таблицу и обновить ее значением.

Я пробовал c.execute("select max(timestamp) from sensor_data"), и он будет возвращать только самую последнюю временную метку.

Код ниже - это имя моей таблицы и столбцы.

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

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Вам нужно 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)
0 голосов
/ 25 января 2020

Вы можете использовать: указано в документации https://www.sqlite.org/lang_corefunc.html#last_insert_rowid

SELECT last_insert_rowid()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...