Есть таблица bank, в ней 3 столбца: id, owner, money Мне нужно "перекинуть" X количество money из N строки в строку M, я сделал запрос, но проблема в том, что из строки N вычитает money, но когда добавляет в строку M, то там надо как-то сделать проверку, есть ли в N строке money >= X, вот мой запрос:
UPDATE bank SET money = CASE id
WHEN '2' THEN IF(owner = '15', money+'5', money)
WHEN '1' THEN IF(owner = '15' AND money >= '5', money-'5', money)
END WHERE id IN ('1', '2')
Здесь из строки с ID 1 вычитает 5 из поля money при условии, что эти 5 были в money и прибавляет к строке ID 2 в поле money 5, но надо сделать туда условие чтобы проверяло, есть ли в строке с ID 1 поле money >= 5
Ну типа
SET @x = 5; -- сумма
SET @m = 2; -- получатель
SET @n = 1; -- плательщик
UPDATE bank, (SELECT 1 enough FROM bank WHERE id = @n AND money >= @x) dummy
SET money = money + @x * CASE id WHEN @m THEN 1 ELSE -1 END
WHERE id IN (@m, @n)
AND dummy.enough;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости