可以使用COUNT个查询吗?

时间:2018-11-21 11:45:01

标签: mysql sql

是否可以将查询返回的结果中的行数(MySQL中的COUNT()函数)用于任何检查等等?
例如,如果我要检查用户今天发布了多少帖子,以检查他是否可以创建其他帖子(换言之,该用户是否达到了每日限制),那么仅发送这样的查询是一个好习惯吗?

SELECT COUNT(post_text) FROM posts WHERE (date_published = CURDATE() AND userId = 115);

还是有更好的方法。我有几次遇到这个问题(我不经常写数据库逻辑),如果我弄错了还是不对,这总是让我感到困惑。因此,希望您能一劳永逸地为我澄清一下,谢谢。

1 个答案:

答案 0 :(得分:1)

如果用户有每日限额,则您可能希望在数据库中进行此检查。

在那种情况下,您将使用 trigger 而不是在应用程序级别实施此限制。这样可以确保无论竞争线程,表锁或谁在执行更新,始终应用该限制。

如果您确实想在应用程序级别实施该限制,则可以使用查询,大概使用count()。我希望查询包含用户ID:

SELECT COUNT(*)
FROM posts p
WHERE p.date_published = CURDATE() AND p.user_id = ?;