是否可以使用查询(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 = ?;
关于mysql - 可以使用 COUNT 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53411338/