Rumah pangkalan data tutorial mysql MySQL 分页存储过程 (转)

MySQL 分页存储过程 (转)

Jun 07, 2016 pm 02:57 PM
mysql kandungan penomboran penyimpanan terperinci proses

无详细内容 无 /*--名称:MYSQL版查询分页存储过程 by peace 2013-8-14--输入参数:@fields -- 要查询的字段用逗号隔开--输入参数:@tables -- 要查询的表--输入参数:@where -- 查询条件--输入参数:@orderby -- 排序字段--输出参数:@page -- 当前页计数从1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

/*

--名称:MYSQL版查询分页存储过程 by peace 2013-8-14

--输入参数:@fields      -- 要查询的字段用逗号隔开

--输入参数:@tables      -- 要查询的表

--输入参数:@where       -- 查询条件

--输入参数:@orderby     -- 排序字段

--输出参数:@page        -- 当前页计数从1开始

--输出参数:@pagesize    -- 每页大小

--输出参数:@totalcount  -- 总记录数

--输出参数:@pagecount   -- 总页数

--输出参数:_sumfields -- 统计字段

*/

DROP PROCEDURE IF EXISTS Proc_Page;

CREATE PROCEDURE Proc_Page

(

    in _fields varchar(2000),  

    in _tables text,

    in _where varchar(2000), 

    in _orderby varchar(200),

    in _pageindex int,

    in _pagesize int,

    in _sumfields  varchar(200),

    out _totalcount int ,

    out _pagecount int

)

begin

   set @startRow = _pageSize*(_pageIndex -1);

   set @pageSize = _pageSize; 

    set @rowindex = 0;

     set @strsql = CONCAT('select sql_calc_found_rows @rowindex:=@rowindex+1 as rownumber,',_fields,' from ',_tables,case ifnull(_where,'') when '' then '' else concat(' where ',_where) end,' order by ',_orderby,' limit ',@startRow,',',@pageSize);

     prepare strsql from @strsql;

     execute strsql;

   deallocate prepare strsql;

   set _totalcount = found_rows();

 

   if (_totalcount <= _pageSize) then

                    set _pagecount = 1;

                    else if (_totalcount % _pageSize > 0) then

                    set _pagecount = _totalcount / _pageSize + 1;

                    else

                     set _pagecount = _totalcount / _pageSize;

            end if;

        end if;

if(ifnull(_sumfields,'') <> '')

then

set @sumsql = contact('select ',_sumfields,' from ',_tables,case ifnull(_where,'') when '' then '' else concat(' where ',_where) end);

 prepare sumsql from @sumsql;

execute sumsql;

deallocate prepare sumsql;

end if;

end

Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kemahiran pemprosesan struktur data besar PHP Kemahiran pemprosesan struktur data besar PHP May 08, 2024 am 10:24 AM

Kemahiran pemprosesan struktur data besar PHP

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP? Jun 03, 2024 pm 08:11 PM

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP?

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Jun 03, 2024 pm 12:19 PM

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP?

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data? May 05, 2024 am 09:06 AM

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data?

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP? Jun 02, 2024 pm 02:26 PM

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP?

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4 Dec 09, 2024 am 11:42 AM

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP? Jun 02, 2024 pm 02:13 PM

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP?

Bagaimana untuk membuat jadual MySQL menggunakan PHP? Bagaimana untuk membuat jadual MySQL menggunakan PHP? Jun 04, 2024 pm 01:57 PM

Bagaimana untuk membuat jadual MySQL menggunakan PHP?

See all articles