0

我在我的网站上有一个我制作的 php 聊天脚本,我想添加一个反垃圾邮件措施,这样如果 mysql 表中的最后 5 条消息是你的,它就不会发布你的消息。

我是否必须使用记录集循环通过最后 5 个,或者是否有一个 SQL 语句可以为我检查这个?

表字段只是“日期”“文本”“用户 ID”

4

3 回答 3

3

您可以使用这样的查询来获取相关人员的最后 5 条消息中有多少条消息。

select 
     sum(if(userid = '$user_id',1,0)) = 5 
     from (
         select userid from chat order by id desc limit 5
     ); 
于 2013-06-13T20:24:19.807 回答
1

在 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 与相关用户匹配。

于 2013-06-13T20:24:50.273 回答
0

按日期 (DESC) 对记录集 (ORDER BY) 进行排序,并将其限制为 5

于 2013-06-13T20:26:04.423 回答