我正在尝试每 2 天为用户添加一次奖励积分。但我不确定如何加入 users
表并获取 user_bonus
值,该值指示用户上次获得奖金的时间。这可以在一个查询中完成吗?
插入查询:
INSERT INTO points_plus (user_id, points) VALUES (?,?);
这将是需要检查的 2 天间隔:
user_bonus <= NOW() - INTERVAL 2 DAY
用户表(部分)
+-------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| weekly_mail | datetime | YES | | NULL | |
| user_bonus | datetime | YES | | NULL | |
| join_date | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+--------------+------+-----+-------------------+-----------------------------+
points_plus 表
+----+---------+--------+---------------------+
| id | user_id | points | date |
+----+---------+--------+---------------------+
| 18 | 13 | 300 | 2015-10-07 12:06:39 |
| 43 | 13 | 99 | 2015-10-18 14:16:50 |
| 45 | 13 | 103 | 2015-10-19 05:49:49 |
+----+---------+--------+---------------------+
最佳答案
你可以试试这个。
INSERT INTO points_plus (user_id, points)
SELECT id, $points
FROM users
WHERE user_bonus <= NOW() - INTERVAL 2 DAY
关于php - MySql - 使用 IF 和 JOIN 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931542/