gpt4 book ai didi

stored-procedures - 删除 MySQL 表中除 5 个最新条目外的所有条目

转载 作者:可可西里 更新时间:2023-11-01 07:47:04 25 4
gpt4 key购买 nike

我目前有处理此逻辑的 PHP 代码,因为我不知道如何在 SQL 中处理它。我想创建一个存储过程,它将删除所有行,除了给定 config_id 的 5 个最新行。 IE config_id = 5 被传递给 SP,因此它知道要清理哪个 config_id。

CREATE TABLE  `TAA`.`RunHistory` (
`id` int(11) NOT NULL auto_increment,
`start_time` datetime default NULL,
`stop_time` datetime default NULL,
`success_lines` int(11) default NULL,
`error_lines` int(11) default NULL,
`config_id` int(11) NOT NULL,
`file_id` int(11) NOT NULL,
`notes` text NOT NULL,
`log_file` longblob,
`save` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8;

最新的将由 start_time 确定,如果 stop_time 为 null 但不是最新的,则应将其删除(如果运行被无礼地终止,stop_time 可以为 null)。

最佳答案

来自 SQL query: Delete all records from the table except latest N? :

DELETE FROM `runHistory`
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM `runHistory`
ORDER BY start_time DESC
LIMIT 5
) foo
);

关于stored-procedures - 删除 MySQL 表中除 5 个最新条目外的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com