mysql - 可以使用 COUNT 查询吗?

标签 mysql sql

是否可以使用查询(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/

相关文章:

php - 将 CSV 导入 MySQL - 字段已经建立

php - 优化 Codeigniter 查询

mysql - 如何选择字段具有特定值的所有记录,直到出现具有不同值的记录?

sql - 使用绑定(bind)的多部分标识符更新 SQL 中的多个列

SQL Server 存储过程捕获 T-SQL 中的返回值

php - 如何比较MySQL中的时间与PHP中的当前时间

mysql - 用户 'root' @'external ip' 的访问被拒绝(使用密码 : YES)

sql - 我如何从 Material list 表中获取递归数据

sqlite3 解释表名

mysql - 从相关的两个表中查找重复项