zoukankan      html  css  js  c++  java
  • 分頁的Mysql存儲過程

    DELIMITER $$

    DROP PROCEDURE
    IF EXISTS `UP_Page` $$
    CREATE DEFINER
    =`root`@`localhost` PROCEDURE `UP_Page`(
    in currpage int
    ,
    in columns varchar(
    500),
    in tablename varchar(
    500),
    in sCondition varchar(
    500),
    in order_field varchar(
    100),
    in asc_field int
    ,
    in primary_field varchar(
    100),
    in pagesize int
    )
    BEGIN
    declare sTemp varchar(1000);
    declare sSql varchar(4000);
    declare sOrder varchar(1000);

    if asc_field = 1 then
    set sOrder
    = concat(' order by ', order_field, ' desc ');
    set sTemp
    = '<(select min';
    else
    set sOrder
    = concat(' order by ', order_field, ' asc ');
    set sTemp
    = '>(select max';
    end if;

    if currpage = 1 then
    if sCondition <> '' then
    set sSql
    = concat('select ', columns, ' from ', tablename, ' where ');
    set sSql
    = concat(sSql, sCondition, sOrder, ' limit ?');
    else
    set sSql
    = concat('select ', columns, ' from ', tablename, sOrder, ' limit ?');
    end if;
    else
    if sCondition <> '' then
    set sSql
    = concat('select ', columns, ' from ', tablename);
    set sSql
    = concat(sSql, ' where ', sCondition, ' and ', primary_field, sTemp);
    set sSql
    = concat(sSql, '(', primary_field, ')', ' from (select ');
    set sSql
    = concat(sSql, ' ', primary_field, ' from ', tablename, sOrder);
    set sSql
    = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);
    set sSql
    = concat(sSql, ' limit ?');
    else
    set sSql
    = concat('select ', columns, ' from ', tablename);
    set sSql
    = concat(sSql, ' where ', primary_field, sTemp);
    set sSql
    = concat(sSql, '(', primary_field, ')', ' from (select ');
    set sSql
    = concat(sSql, ' ', primary_field, ' from ', tablename, sOrder);
    set sSql
    = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);
    set sSql
    = concat(sSql, ' limit ?');
    end if;
    end if;
    set @iPageSize
    = pagesize;
    set @sQuery
    = sSql;
    prepare stmt from @sQuery;
    execute stmt using @iPageSize;
    END $$

    DELIMITER ;
  • 相关阅读:
    七天学会ASP.NET MVC(七)——创建单页应用
    七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
    七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC
    七天学会ASP.NET MVC (四)——用户授权认证问题
    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
    网页倒计时跳转页面的效果
    javascript中最简单Ajax实例
    经典SQL语句大全(绝对的经典)
    .NET中的加密类(可设置密钥)
    非常强大的 jQuery.AsyncBox 弹窗插件
  • 原文地址:https://www.cnblogs.com/Athrun/p/2094252.html
Copyright © 2011-2022 走看看