@delam0re
Начинающий разработчик discord.py

Как сравнить данные из таблицы с нулем?

Подскажите как можно сравнить данные из таблички с нулем
Есть такой код:
@bot.command(aliases = ['warn'])
async def __warn(ctx, member: discord.Member = None, arg: int = None):
	print('1')
	if member is None:
		await ctx.send('Пользователь')
		print('2')
	elif arg is None:
		await ctx.send('Причина')
		print('3')
	else: 
		for i in cursor.execute("SELECT Wreason FROM users WHERE id = {}".format(member.id)).fetchone():
			if i == 0:
				print('4')
				cursor.execute("UPDATE users SET warns = warns + {1} WHERE id = {}".format(member.id))
				cursor.execute("UPDATE users SET Wreason = Wreason + {} WHERE id = {}".format(arg, member.id))

Условие: если число из таблички равно 0 то мы изменяем значение в таблице warns и Wreason
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@o5a
Вместо
for i in cursor.execute("SELECT Wreason FROM users WHERE id = {}".format(member.id)).fetchone():
      if i == 0:
        print('4')
        cursor.execute("UPDATE users SET warns = warns + {1} WHERE id = {}".format(member.id))
        cursor.execute("UPDATE users SET Wreason = Wreason + {} WHERE id = {}".format(arg, member.id))


Использовать напрямую синтаксис SQL
cursor.execute("UPDATE users SET warns = warns + 1, Wreason = {} WHERE id = {} AND Wreason = 0".format(arg, member.id))

Обновит таблицу users по данному пользователю (увеличит счетчик предупреждений на 1, проставит новую причину предупреждения), если до этого Wreason = 0.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы