Php 当MYSQL列值增加100时执行某些操作
我需要提醒一个站点的成员,当他们的帖子数量达到100的倍数时。当mysql表中的值达到100、200、300等时,是否可以运行函数或回显某些内容 表结构:Php 当MYSQL列值增加100时执行某些操作,php,mysql,database,database-design,Php,Mysql,Database,Database Design,我需要提醒一个站点的成员,当他们的帖子数量达到100的倍数时。当mysql表中的值达到100、200、300等时,是否可以运行函数或回显某些内容 表结构: username | password | email | posts 我当前正在使用以下内容显示他们的帖子数量: $sql = mysql_query("SELECT `posts` FROM `user` WHERE username='$username'") or die(mysql_error()); $row = mysql
username | password | email | posts
我当前正在使用以下内容显示他们的帖子数量:
$sql = mysql_query("SELECT `posts` FROM `user` WHERE username='$username'") or die(mysql_error());
$row = mysql_fetch_array($sql);
echo "<br /><h4>Your posts:</h4>" . " " . $row['posts'];
您可以使用触发器:
或
只需创建一个cron作业即可使用触发器:
或
只需创建一个cron作业您需要一个
模运算。返回N除以M的余数
像这样
SELECT username
FROM `user`
WHERE username='$username' AND MOD(posts,100) = 0
您可以在用户每次发布新帖子时检查条件,您需要
模运算。返回N除以M的余数
像这样
SELECT username
FROM `user`
WHERE username='$username' AND MOD(posts,100) = 0
每次用户发布新帖子时,您都可以检查该条件在每次插入时添加额外的查询通常不是一个好主意。这比使用触发器要好,而且如果您通过ID找到该用户,并且您有一个索引,那么这不应该是一个问题。该逻辑不属于查询。如果您想要具有该条件的所有用户的列表,在SQL中,它将更快,更易于维护,而且您不必从数据库中获取所有用户,也不必使用ifI进行循环。我不认为这是一个用例。为什么你会关心所有有100、200、300篇帖子的用户?在每次插入时添加一个额外的查询通常不是一个好主意。比触发器更好,如果你通过ID找到用户,并且你有一个索引,这应该不是一个问题。此逻辑不属于查询。如果你想要所有有此条件的用户的列表,在SQL中,它将更快,更易于维护,而且您不必从数据库中获取所有用户,也不必使用ifI进行循环。我不认为这是一个用例。为什么你会关心所有拥有100、200、300篇帖子的用户?这种逻辑不属于MySQL。它应该在PHP中完成。Posts是用户表的一部分,因此当您创建或尝试显示模型时,可以检查POST的数量。如果两个事件几乎同时发生,并且从199增加到201,则可能会错过应用程序中的触发器,因此需要进行特殊处理。MySQL触发器保证能工作。谢谢,我会试试。这个逻辑不属于MySQL。它应该在PHP中完成。Posts是用户表的一部分,因此当您创建或尝试显示模型时,可以检查POST的数量。如果两个事件几乎同时发生,并且从199增加到201,则可能会错过应用程序中的触发器,因此需要进行特殊处理。MySQL触发器保证能工作。谢谢,我来试试。