Увеличение значения, но не превышение другого значения sql - PullRequest
0 голосов
/ 24 мая 2019

Здравствуйте. Я пытаюсь написать SQL-оператор, который проверяет, является ли увеличенное значение больше значения другого.

Я использую MySQL и Python.

Response=int(input("Use Medicine? Y/N "))
if Response==("Y") or Response==("y"):
   healedvalue=random.randint(1,3)
   GetHealth=("UPDATE activechar SET currhealth=currhealth+%s BUT NOT HIGHER THAN currmaxhealth WHERE acharID=%s")
   mycursor.execute(GetHealth,(healedvalue,id))
   mydb.commit()

Желаемые результаты:

Например, если currhealth=1 и healedvalue=3 и currmaxhealth=5, то currheath будет обновлено до 4.

Тем не менее, если currhealth=4 и healedvalue=3 и currmaxhealth=5, тогда currheath будет обновлено до 5, так как currhealth не может превышать 5.

Таблица:

Таблица активных чар

1 Ответ

1 голос
/ 24 мая 2019

Вы можете использовать функцию LEAST() , которая «возвращает наименьший (минимальный) аргумент»:

UPDATE activechar
SET currhealth = LEAST(currhealth + %s, currmaxhealth)
WHERE acharID = %s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...