mysql - 可以使用 COUNT 查询吗?
问题描述
是否可以使用查询(MySQL 中的函数)返回的结果中的行数COUNT()
进行任何检查等等?
例如,如果我想检查用户今天发了多少帖子来检查他是否可以创建另一个帖子(换句话说,用户是否达到了他的每日限额),那么发送这样的查询是一个好习惯吗
SELECT COUNT(post_text) FROM posts WHERE (date_published = CURDATE() AND userId = 115);
还是有更好的方法。我遇到过几次(我不经常编写数据库逻辑),如果我弄错了,我总是有点困惑。所以希望你能一劳永逸地为我澄清这一点,谢谢。
解决方案
如果用户有每日限制,那么您可能希望在数据库中进行此检查。
在这种情况下,您将使用触发器而不是在应用程序级别实现此限制。这确保始终应用限制,而不管竞争线程、表锁或谁在执行更新。
如果您确实想在应用程序级别实现限制,那么您将使用查询,大概是count()
. 我希望查询包含用户 ID:
SELECT COUNT(*)
FROM posts p
WHERE p.date_published = CURDATE() AND p.user_id = ?;
推荐阅读
- python - 如何在Python中的所有字符和int之间拆分字符串
- c++ - struct中的字符串放入vector后无法输出---有问题
- c++ - 为什么 DeviceIoControl 有时不工作(错误=2)?
- python - 如何正确使用 ValueError 函数?
- amazon-web-services - Terraform AWS 无法 ping,或者 ssh 刚刚创建了 EC2 实例
- bash - 难以理解 AWK 语法
- ansible - 如果目标文件不存在,Ansible get_url 将失败
- python - 寻找查找代码以将列添加到从同一数据帧查询的 Pandas 数据帧
- android - Android Json Object放了一个没有key的Array JSON
- python - 尽管最近工作,Tkinter 屏幕仍显示为黑色