每个日期mysql只更新50条记录

时间:2016-06-16 06:25:26

标签: php mysql

我有一张优惠券表,我已经插入了很多数据。如果一个用户订阅该表将被更新并将该优惠券分配给用户。

ID       coupon       user           created      Instance
1         xxxx     abc@gmail.com    2016-06-15       1
2         xxxx     def@gmail.com    2016-06-15       1
3         xxxx     ghi@gmail.com    2016-06-15       1
4         xxxx     ijk@gmail.com    2016-06-15       1
5         xxxx                      0000-00-00       0
6         xxxx                      0000-00-00       0
7         xxxx                      0000-00-00       0

如果用户订阅用户邮件,将创建日期并将实例更改为1.我想每天只更新50个用户如何查询查询此条件?

1 个答案:

答案 0 :(得分:1)

您可以使用这样的查询。 执行后,您可以使用 mysqli_affected_rows 测试更改的行数。

UPDATE yourTable
  SET `Instance` = 1
  , `USER` = 'theEmail'
  , `created` = now()
WHERE
  id = (SELECT `id` FROM yourTable WHERE `Instance` = 0 AND `USER` IS NULL LIMIT 1)
AND
 50 > (SELECT COUNT(*) FROM yourTable WHERE `created` = NOW());