Найти - Пользователи
Полная версия: Запрос по ID
Начало » Базы данных » Запрос по ID
1 2
y_starynets
Всем доброго времени суток. Есть такая задача нужно например каждые 20 мин считывать ряд значений по Id. На данном моменте я считываю по определенному. Подскажите пожалуйста как считывать по Id новые значения, не трогая прошлые
 cursor.execute('SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = 80 ')
results = cursor.fetchall()
FishHook
давайте другие id в запрос, чтобы получить другую выборку. Это не очиведно?
y_starynets
вы не поняли прога должна работать в автомате, а не в ручную
FishHook
y_starynets
вы не поняли прога должна работать в автомате, а не в ручную
“вручную” работающая прогрмаа это вообще как?

y_starynets
Есть такая задача нужно например каждые 20 мин считывать ряд значений по Id.
Вот я читаю ваше первое сообщение. Вы получаете данные из БД по ID. Ну значит эти самые ID программе известны.
y_starynets
На данном моменте я считываю по определенному.
Хороша и любовна русская языка. По чему определенному вы считываете неясно, но могу догадаться, что по определенному ID. Это и так было в общем-то понятно, что считывать данные можно только по определенному ID, как это делать по неопределенному - загадка.
y_starynets
Подскажите пожалуйста как считывать по Id новые значения, не трогая прошлые
Ну логично предположить, что для того чтобы получить другую выборку по ID, вам надо подставлять в запрос другие ID.
y_starynets
Я с вами согласен. Но я пишу в запросе в ручную а мне нужно чтобы оно подставляло само, без моего вмешательства
FishHook
y_starynets
Я с вами согласен. Но я пишу в запросе в ручную а мне нужно чтобы оно подставляло само, без моего вмешательства
Ну вам же знакомо понятие переменная? Программы написанные на императивных языках вообще в принципе так работают - это некий набор действий, который изменяет значения переменных. А подставить значение переменной в строку можно множеством способов
Rafik
Весь набор ID известен скрипту, который будет запускать запрос? Если да, то перебрать в цикле все ID или в запрос подставить диапазон значений и получить выборку по всем ID.
Если не известно последнее, имеющееся в БД ID, то можно же запросить max(id).
 # вот полный аналог твоего cursor.execute('SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = 80 ')
my_new_id = 80
zapros = 'SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = {} '.format(my_new_id)
cursor.execute(zapros)
Надеюсь понятно, что значение my_new_id должно вычисляться скриптом до формирования строки zapros.
y_starynets
Rafik
Cпасибо, все работает. Скажите еще пожалуйста как мне в Id передать список значений например
Rafik
y_starynets
…как мне в Id передать список значений например
Если требуется использовать в запросе IN, тогда можно весь список значений объединить в строку с разделителем “запятая” и подставить format-ом в текст запроса. Например, для sqlite, как-то так
 my_ids = ",".join([str(_) for _ in range(0,10,2)])  # Записи с чётными id от 0 до 9 
zaproz = "... WHERE Id  IN ({})".format(my_ids)  # Хвост запроса будет выглядеть так. Многоточием обозначено место начала строки запроса
y_starynets
Rafik
Спасибо все работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB