繁体   English   中英

如果有4行或更多行以用户名命名,如何删除行

[英]How do I delete a row if there are 4 or more rows named after the username

我的教授希望我们创建一个基于Web的评论系统,其中用户最多可以发送3条评论,如果用户在数据库中已经有3条以他的名字命名的评论时决定创建另一条评论,则该程序应删除最早的评论并保存新的。

我想到的是获取以用户命名的行,如果该行大于或等于4,则应该删除其中username = session user的行并插入新记录。 尽管这只是理论上的观点,但这是实现此目标的最佳方法吗? 你们还有其他建议吗? 我如何准确地选择要删除的行? 我是否以最高comment_id为基础?

不要删除数据库中的行,只需对选择查询进行限制,使其在创建日期之前的顺序为0.4

读取: 仅将前50条记录保留在SQL数据库中,然后删除其余记录

所以基本上做到这一点:

创建带有注释的自动增量ID。 然后:

DELETE FROM comments
WHERE
  id NOT IN (
    SELECT * FROM (
      SELECT id
      FROM comments
      ORDER BY date
      desc LIMIT 3) s
  )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM