mysql存储进程语法学习ITeyeitjob - 凯时娱乐

mysql存储进程语法学习ITeyeitjob

2019-02-07 11:38:50 | 作者: 泽雨 | 标签: | 浏览: 1925

增加一个完好的比如:(这是一个自定义分页的存储进程)

DELIMITER $$

DROP PROCEDURE IF EXISTS `dbcall`.`get_page`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_page`(
    /**//*Table name*/
    tableName varchar(100),
    /**//*Fileds to display*/
    fieldsNames varchar(100),
    /**//*Page index*/
    pageIndex int,
    /**//*Page Size*/
    pageSize int,  
    /**//*Field to sort*/
    sortName varchar(500),
    /**//*Condition*/
    strWhere varchar(500)
  )
BEGIN  
    DECLARE fieldlist varchar(200);  
    if fieldsNames=||fieldsNames=null THEN
        set fieldlist=*;
    else
        set fieldlist=fieldsNames;  
    end if;

    if strWhere=||strWhere=null then
        if sortName=||sortName=null then  
            set @strSQL=concat(SELECT ,fieldlist, FROM ,tableName, LIMIT ,(pageIndex-1)*pageSize,,,pageSize);
        else
            set @strSQL=concat(SELECT ,fieldlist, FROM ,tableName, ORDER BY ,sortName, LIMIT ,(pageIndex-1)*pageSize,,,pageSize);  
        end if;
    else
        if sortName=||sortName=null then
            set @strSQL=concat(SELECT ,fieldlist, FROM ,tableName, WHERE ,strWhere, LIMIT ,(pageIndex-1)*pageSize,,,pageSize);
        else
            set @strSQL=concat(SELECT ,fieldlist, FROM ,tableName, WHERE ,strWhere, ORDER BY ,sortName, LIMIT ,(pageIndex-1)*pageSize,,,pageSize);  
        end   if;
    end   if;  
    PREPARE stmt1 FROM @strSQL;  
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
END$$

DELIMITER ;

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章