[英]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.