Visa ett inlägg
Oläst 2013-04-13, 15:13 #5
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Gör om det hela till en Stored Procedure så blir det enklare att anropa från prograkoden och det blir enklare att göra ändringar:

Kod:
USE `secag`;

DROP procedure IF EXISTS `DeleteAllMessagesButLast30`;

DELIMITER $$
USE `secag`$$
CREATE PROCEDURE `secag`.`DeleteAllMessagesButLast30` ()
BEGIN
	DELETE FROM `shoutbox`
	WHERE message_id <= 
	(
		SELECT message_id
		FROM 
		(
		  SELECT message_id
		  FROM `shoutbox`
		  ORDER BY message_id DESC
		  LIMIT 1 OFFSET 30 -- Behåll så här många tupler
		) foo
	);
END$$
DELIMITER ;
För att anropa SPn från ditt program behöver du bara köra denna SQL-sats:

Kod:
CALL `secag`.`DeleteAllMessagesButLast30` ();

Senast redigerad av Conny Westh den 2013-04-13 klockan 15:16
Conny Westh är inte uppkopplad   Svara med citatSvara med citat