@newPsevdonim
Python разработчик

Почему SQL запрос ничего не возвращает?

Есть бд в которую постоянно стекаются данные, я с интервалом в пять секунд извлекаю их из нее. Сначала смотрю последнее время и потом от него отнимаю 5 секунд и уже с ним делаю запрос. Но если в бд натекла только одна запись то запрос ничего не возвращает почему так может происходить?

last_time = self.client.execute('SELECT time_local FROM {} ORDER'
                                            ' BY time_local DESC LIMIT 1'.format(table_name))
self.last_time[tag] = last_time[0][0]
print(self.last_time[tag])
table = self.client.execute('SELECT {} FROM {} WHERE client_id = \'{}\''
                                        'AND time_local >= \'{}\' ORDER BY'
                                        ' time_local DESC'.format(table_fields,
                                                                  table_name,
                                                                  tag,
                                                                  self.last_time[tag] - timedelta(seconds=5)))
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Потому, что last_time вы извлекаете без учета client_id, а потом добавляете это ограничение и, очевидно, по этому пользователю не было ни одной записи за эти секунды, а были по другому пользователю.

но говнокод тот еще, конечно. Не удивительно, что для вас не прозрачна причина такого поведения кода, когда он так плохо написан.

Короче, в первом зпросе забыли добавить "WHERE client_id =..."
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы