о, если заявление в MySQL

голоса
-1
SET @total_people = (SELECT COUNT(*) FROM tbl_members);
SET @point_available = (SELECT free_bonus from tbl_bonus);

SET @must_use = @total_people * 15;

IF @point_available > @must_use THEN

SET @bonuses = @money_available - @must_use ;
UPDATE tbl_member SET points = points + 15 WHERE 1;
ELSE

SET @bonuses = @points_available / 15;
UPDATE tbl_member SET points = points + 15 LIMIT @bonuses;

END IF;

SELECT @bonuses

:( его не работает :( ..... все, если заявление: '(

Сожалеем об этом XD .... новичок здесь ... и им пытаются сделать это на английском языке XD ... и его очень трудно объяснить Хаха кстати ... им пытаются сделать хранимую процедуру им с проблемой с, если заявление ... Я хочу, чтобы установить переменную, которая обрабатывает общие элементы .. и общее количество очков, которые я получил ... free_points = общий член * 15; если сумма очков больше, чем свободные точки, то сделать обновление tbl_member точек = + 15 баллов все из них еще некоторые из них получат бесплатные очки ... Общий лимит очков / 15; извините за плохой английский XD

ошибка:

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи «IF point_available> must_use ТОГДА

Задан 24/07/2014 в 08:58
пользователем
На других языках...                            


2 ответов

голоса
1

Изменить этот:

SET @point_available = (SELECT COUNT (free_bonus) от tbl_bonus);

Ответил 24/07/2014 в 11:12
источник пользователем

голоса
0

-_-

Thnx все ... я нашел решение ...

PREPARE STMT FROM 
"UPDATE tbl_member SET points = points + 15 LIMIT ? ";

SET @1st = (SELECT COUNT(*) FROM tbl_member);
SET @2nd = (SELECT free_bonus FROM tbl_bonus);
SET @3rd = @1st * 15; 
SET @4th = @2nd / 15;
SET @5th = (SELECT IF(@3rd > @2nd,@4th,@1st));

EXECUTE STMT USING @5TH;
Ответил 24/07/2014 в 15:21
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more