是否可以将查询返回的结果中的行数(MySQL中的COUNT()
函数)用于任何检查等等?
例如,如果我要检查用户今天发布了多少帖子,以检查他是否可以创建其他帖子(换言之,该用户是否达到了每日限制),那么仅发送这样的查询是一个好习惯吗?>
SELECT COUNT(post_text) FROM posts WHERE (date_published = CURDATE() AND userId = 115);
还是有更好的方法。我有几次遇到这个问题(我不经常写数据库逻辑),如果我弄错了还是不对,这总是让我感到困惑。因此,希望您能一劳永逸地为我澄清一下,谢谢。
答案 0 :(得分:1)
如果用户有每日限额,则您可能希望在数据库中进行此检查。
在那种情况下,您将使用 trigger 而不是在应用程序级别实施此限制。这样可以确保无论竞争线程,表锁或谁在执行更新,始终应用该限制。
如果您确实想在应用程序级别实施该限制,则可以使用查询,大概使用count()
。我希望查询包含用户ID:
SELECT COUNT(*)
FROM posts p
WHERE p.date_published = CURDATE() AND p.user_id = ?;