delimiter$$DROPprocedureIFexistsP_TopWinCMS_LatestContents;CREATEprocedureP_TopWinCMS_LatestContents(TableNamevarchar(50),ClassIDint,TOPint,ModelIDint)IFClassID=0THENbegi...
delimiter $$
DROP procedure IF exists P_TopWinCMS_LatestContents;
CREATE procedure P_TopWinCMS_LatestContents(
TableName varchar(50),
ClassID int,
TOP int,
ModelID int)
IF ClassID =0 THEN
begin
SET @SQL=concat('select ID,ModelID,ClassID,ClassName,ContentTitle,Hits,'""' as
Content,ColorStyle,FontStyle,UpdateTime,TemplateFileName
from VW_',TableName,' where deleted=0 and Pass=1 order by UpdateTime desc limit ',TOP);
PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
end;
ELSE IF ClassID>0 THEN
begin
SET @SQL=concat('select ID,ModelID,ClassID,ClassName,ContentTitle,Hits, '""' as
Content,ColorStyle,FontStyle,UpdateTime,TemplateFileName from VW_',TableName,' where deleted=0 and Pass=1 and
ClassID in (',Get_ClassIDs(ClassID),') order by UpdateTime desc limit ',TOP);
PREPARE stmt2 FROM @SQL;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
end;
ELSE IF ClassID=-1 THEN
begin
DECLARE X int;
DECLARE done int;
DECLARE t_cursor cursor for SELECT ID From TopWinCMS_Class where ParentID=0 and IsShowInIndex=1 and
LinkUrl =N'' and `ModelID` = ModelID order by `RootID`;
declare continue handler FOR SQLSTATE '02000' SET done = 1;
SET @SQL='';
open t_cursor;
repeat
begin
SET @SQL=concat('select ID,ModelID,ClassID,ClassName,ContentTitle,Hits,'""' as Content,ColorStyle,FontStyle,UpdateTime,TemplateFileName from VW_',TableName,' where deleted=0 and Pass=1 and ClassID in (',Get_ClassIDs(X),') limit ',TOP);
PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
fetch t_cursor into X;
end;
until done end repeat;
close t_cursor;
end;
end if $$
delimiter;
有没有要分的,随便来回答个
展开