SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.11.2016 11:26:29

NickDrake
Участник
Зарегистрирован: 22.11.2016
Сообщений: 1

Составление запроса на вознаграждение за приглашенных

Доброго всем времени суток столкнулся с такой проблемой.
Имеется база данных с аккаунтами пользователей ключевые поля для использования "id, refer, refer_rewarded, toll"
Id - пользовательский персональный номер в базе
refer - указатель на id пригласившего
refer_rewarded - 1 или 0 в зависимости от того получен ли бонус за приглашение
toll - парамет по которому контролируется получение бонуса

Сущность необходимого запроса такова:
UPDATE account_data SET "toll"="toll+25" AND "ref_rewarded"="1" WHERE 'ref_rewarded' < '1' AND 'refer' = '1111' AND 'toll' >= '60'

То есть необходимо выбрать акккаунт залогиневшегося пользователя пусть далее будет просто id, проверить есть ли указания на его id в колонке refer, проверить вознаграждался ли он уже за приглашенного пользователя(колонка refer_rewarded), если не вознаграждался проверить есть ли у приглашенного 60 и более toll и если есть то добавить приглашающему 25 toll , а приглашенному 10 и как в следствии установить refer_rewarded на 1 как уже получивший вознаграждение.

Извиняюсь за довольно длительный вопрос, логику иначе не показать было необходимую.

Неактивен

 

#2 22.11.2016 11:38:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Составление запроса на вознаграждение за приглашенных

нужно два запроса:


UPDATE account_data SET toll=toll+10 AND `ref_rewarded`=1 WHERE `ref_rewarded` = 0 AND `refer` = 1111 AND `toll` >= 60; -- обновит у приглашенных

затем определяем кол-во обновленных строк (kol), например, с помощью mysql_affected_rows
UPDATE account_data SET toll=toll+25*kol WHERE id = 1111;

обратите внимание на кавычки

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson