0

可以用mysql做这样的事情吗?

想象一下,我更新了查询,每次用户给出成功的答案时都会运行。现在我想计算更新并每四次给予+1奖励积分......

我可以只计算行并将它们除以 4,但这会给我带来不可消费的奖励积分,因为每次更新都会重新计算......

我的问题有什么mysql解决方案吗?

4

1 回答 1

0

我认为当用户给出成功的答案时,您可以使用触发器并计算额外的奖金。

这是工作示例:

DROP TABLE IF EXISTS answer;

CREATE TABLE answer
(
  id int not null auto_increment,
  bonus int not null,
  primary key(id)
);

DELIMITER //

CREATE TRIGGER lucky_trigger BEFORE INSERT ON answer
FOR EACH ROW BEGIN
  IF MOD((SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'answer'), 4) = 0 THEN
      SET NEW.bonus = NEW.bonus + 1;
  END IF;
END //

DELIMITER ;

INSERT INTO answer(bonus) VALUES(1);
INSERT INTO answer(bonus) VALUES(1);
INSERT INTO answer(bonus) VALUES(1);
INSERT INTO answer(bonus) VALUES(1);

SELECT id, bonus FROM answer;

会给你下一个输出:

+----+-------+
| id | bonus |
+----+-------+
|  1 |     1 |
|  2 |     1 |
|  3 |     1 |
|  4 |     2 |
+----+-------+
4 rows in set (0.00 sec)
于 2013-03-08T12:16:44.630 回答