首页 > 解决方案 > 可以使用 COUNT 查询吗?

问题描述

是否可以使用查询(MySQL 中的函数)返回的结果中的行数COUNT()进行任何检查等等?
例如,如果我想检查用户今天发了多少帖子来检查他是否可以创建另一个帖子(换句话说,用户是否达到了他的每日限额),那么发送这样的查询是一个好习惯吗

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

还是有更好的方法。我遇到过几次(我不经常编写数据库逻辑),如果我弄错了,我总是有点困惑。所以希望你能一劳永逸地为我澄清这一点,谢谢。

标签: mysqlsql

解决方案


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

在这种情况下,您将使用触发器而不是在应用程序级别实现此限制。这确保始终应用限制,而不管竞争线程、表锁或谁在执行更新。

如果您确实想在应用程序级别实现限制,那么您将使用查询,大概是count(). 我希望查询包含用户 ID:

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

推荐阅读