【问题标题】:about if statement in mysql关于mysql中的if语句
【发布时间】:2014-07-24 09:58:24
【问题描述】:
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

:( 它不工作 :( ..... 整个 if 语句 :'(

对那个 XD 感到抱歉 .... 新手在这里 ... 我正在尝试用英语 XD ... 真的很难解释哈哈顺便说一句 ... 我正在尝试制作一个存储过程,但我遇到了问题使用 if 语句 ...我想设置一个变量来处理成员总数 .. 以及我得到的总分数 ... free_points = total member * 15;如果总积分大于免费积分,则更新 tbl_member points = points + 15 所有积分,否则其中一些将获得免费积分...限制总积分/ 15;抱歉英语不好XD

错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'IF point_available > must_use THEN

附近使用正确的语法

【问题讨论】:

  • 有什么不好的?它是错误的,还是没有产生您期望的输出,还是什么?
  • 它不工作”不是有效的 MySQL 错误消息。
  • 是什么问题和错误,请解释一下
  • 对那个 XD 感到抱歉 .... 新手在这里 ... 我正试图用英语 XD ... 真的很难解释哈哈顺便说一句 ... 我试图做一个存储程序我的 if 语句有问题...我想设置一个变量来处理总成员..和我得到的总分... free_points = 总成员 * 15;如果总积分大于免费积分,则更新 tbl_member points = points + 15 所有积分,否则其中一些将获得免费积分...限制总积分/ 15;抱歉英语不好XD
  • 你的 SQL 里面有随机的 HTML
    标签吗?

标签: mysql sql stored-procedures if-statement


【解决方案1】:

换一个:

SET @point_available = (SELECT COUNT(free_bonus) from tbl_bonus);

【讨论】:

    【解决方案2】:

    -_-

    谢谢大家...我找到了解决方案...

    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;
    

    【讨论】:

    • 实际上我不小心使用库存溢出中的其他代码构建它-_-
    猜你喜欢
    • 2013-02-26
    • 1970-01-01
    • 2010-09-16
    • 2016-10-15
    • 2012-04-12
    • 2016-01-11
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多