我在我的网站上有一个我制作的 php 聊天脚本,我想添加一个反垃圾邮件措施,这样如果 mysql 表中的最后 5 条消息是你的,它就不会发布你的消息。
我是否必须使用记录集循环通过最后 5 个,或者是否有一个 SQL 语句可以为我检查这个?
表字段只是“日期”“文本”“用户 ID”
您可以使用这样的查询来获取相关人员的最后 5 条消息中有多少条消息。
select
sum(if(userid = '$user_id',1,0)) = 5
from (
select userid from chat order by id desc limit 5
);
在 MySQL 中:
select userid, count(date) as howmany from
(
select userid, date
from YOURTABLENAME
order by date desc
limit 5
)
lastfiverows
group by userid
order by howmany
然后在 PHP 中检查“多少”字段是否为 5,并且用户 ID 与相关用户匹配。
按日期 (DESC) 对记录集 (ORDER BY) 进行排序,并将其限制为 5