回答
用途:
SELECT YEAR(t.ur_date_field) AS yr,
MONTH(t.ur_date_field) AS month_number,
COUNT(*) AS num_photos
FROM UR_TABLE t
GROUP BY YEAR(t.ur_date_field), MONTH(t.ur_date_field)
ORDER BY yr, month_number
...获得:
yr | month_number | num_photos
--------------------------------
2010 | 1 | 2
2010 | 2 | 1
如果没有任何照片,对于给定的月份,它不会在resulset露面。
从那里,你可以验证这个月尤其如此。
一个可能的解决方案:
具有用户ID和月表。
每当用户上传照片增量数当月该用户。
然后在他们上传照片的页面上查看当前月份的值,看它是否小于3.如果允许上传,如果它等于三则显示“您已经用完上传本月“消息。
如果您还包括关联到每个用户的一些用户更上传与他人如有必要,少了你可能允许,或者只是增加了限制,如果你的带宽允许“最大上传”字段。
未经测试:
SELECT COUNT(*) FROM photos WHERE user="bob" AND createdAt > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
那查询应返回已经由用户名为Bob的创建(根据createdAt
场)在过去一个月的photos
表中的行数。与3
相比较,知道是否允许他们上传内容。
但这将当前日起1个月子限制它,我需要做的是通过像二月,四月,六月喇嘛月... – 2010-06-15 14:15:07
你是什么意思与“受限制月”?你的意思是“限制过去30天”,还是“限制每个月的第一个月重置”?
在第一种情况下:只要选择在过去一个月内由当前用户创建的照片的数量。如果该数字大于等于3,则拒绝用户上传。
SELECT COUNT(*) FROM <pictures_table>
WHERE <upload_date_field> >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
AND <user_field> = <current_user>
我应该提到您可以在您的应用程序的不同层上实现此逻辑,但这取决于您。
我指的是“极限复位每个月的第一个月“ – 2010-06-15 14:44:04
- 1. 如何限制用户访问控制器的特定操作?
- 2. 月份和年份的有效期限
- 3. 将输出限制在某些月份和年份的SQL
- 4. 按月份和用户
- 5. 如何更改10月份的用户权限CMS
- 6. 用户在网站上的任何操作及时的限制
- 7. Tomcat身份验证和用户操作
- 8. ASP.NET MVC基于控制器操作权限的用户
- 9. og:新用户操作的类型和域限制?
- 10. 使用操作筛选器限制每个用户的访问权限数
- 11. 限制并发操作nodejs
- 12. 限制集合操作
- 13. Docker并行操作限制
- 14. 操作时间限制
- 15. 减去月份的月份
- 16. 如果用户类型XXX,Sonata Admin限制操作
- 17. 限制url操作返回其他用户记录
- 18. 如何限制某些视图/操作以登录用户?
- 19. 如何根据用户角色限制asp.net控件操作?
- 20. 如何限制日期和月份无效jQuery的/ JavaScript的
- 21. 通过年份,月份和周期中的lubridate制作完成
- 22. 用count限制某些操作访问?
- 23. 月份名称到月份编号 - 03月份是2月份?
- 24. Fullcalendar - 将月份限制在月视图中的单一全天事件
- 25. 限制年月/ DatePicker的
- 26. C#操作的限制lambda代码块
- 27. 如何限制某些行的操作?
- 28. 仅限网站的控制器操作
- 29. Symfony对CRUD操作的访问限制
- 30. 限制操作中的非数字值
这听起来不错,会尽量THX – 2010-06-15 14:44:31