Home > Database > Mysql Tutorial > body text

How to use mysql stored procedure to implement paging function

PHPz
Release: 2023-04-18 17:11:30
Original
738 people have browsed it

In development, we often need to perform paging queries on the database. There are many ways to implement this function, and stored procedures are one of the more efficient and maintainable methods. This article will introduce how to use mysql stored procedures to implement paging functionality.

  1. Create a stored procedure

First, we need to create a stored procedure in mysql to implement the paging function. The following is a basic stored procedure example:

CREATE PROCEDURE `PageQuery`(
    IN pTableName VARCHAR(255),
    IN pSelectColumns VARCHAR(500),
    IN pWhere VARCHAR(500),
    IN pOrder VARCHAR(500),
    IN pStart INT,
    IN pPageSize INT,
    OUT totalRecord INT
)
BEGIN
    DECLARE sql CHAR(1000);
    SET sql = CONCAT('SELECT ',pSelectColumns,' FROM ',pTableName,' WHERE 1=1 ',pWhere,' ',pOrder,' LIMIT ',pStart,',',pPageSize);
    PREPARE stmt FROM sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    SET sql = CONCAT('SELECT COUNT(1) FROM ',pTableName,' WHERE 1=1 ',pWhere);
    PREPARE stmt FROM sql;
    EXECUTE stmt INTO totalRecord;
    DEALLOCATE PREPARE stmt;
END
Copy after login
Copy after login

The parameter description of the above stored procedure is as follows:

  • pTableName: the name of the table to be queried
  • pSelectColumns: to be queried Column name
  • pWhere: filter conditions
  • pOrder: sorting method
  • pStart: starting position (page)
  • pPageSize: size of each page
  • totalRecord: Total number of records

This stored procedure is mainly used to return the query results of the specified page number and size of each page and the total number of records that meet the filtering conditions.

  1. Use stored procedures

The steps to use stored procedures to implement paging queries are as follows:

(1) Call stored procedures

CALL `PageQuery`(tableName, selectColumns, where, order, start, pageSize, totalRecord);
Copy after login

When calling a stored procedure, you need to pass in the corresponding parameters.

(2) Obtain paging data

After calling the stored procedure through the above steps, the query results with the specified page number and size of each page will be returned. You can use the following statement to obtain the query results:

SELECT * FROM temp_table;
Copy after login
Copy after login

(3) Get the total number of records

By calling the OUT parameter totalRecord when calling the stored procedure, you can get the total number of records that meet the filtering conditions.

  1. Example

Suppose we have a test table, which contains the following fields: id, name, age.

We need to perform paging query on this table, with 10 pieces of data per page, arranged in descending order by id.

Define the stored procedure:

CREATE PROCEDURE `PageQuery`(
    IN pTableName VARCHAR(255),
    IN pSelectColumns VARCHAR(500),
    IN pWhere VARCHAR(500),
    IN pOrder VARCHAR(500),
    IN pStart INT,
    IN pPageSize INT,
    OUT totalRecord INT
)
BEGIN
    DECLARE sql CHAR(1000);
    SET sql = CONCAT('SELECT ',pSelectColumns,' FROM ',pTableName,' WHERE 1=1 ',pWhere,' ',pOrder,' LIMIT ',pStart,',',pPageSize);
    PREPARE stmt FROM sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    SET sql = CONCAT('SELECT COUNT(1) FROM ',pTableName,' WHERE 1=1 ',pWhere);
    PREPARE stmt FROM sql;
    EXECUTE stmt INTO totalRecord;
    DEALLOCATE PREPARE stmt;
END
Copy after login
Copy after login

Call the stored procedure:

CALL `PageQuery`('test', 'id, name, age', '', 'ORDER BY id DESC', 0, 10, @totalRecord);
Copy after login

Query the total number of records:

SELECT @totalRecord;
Copy after login

Get the query results:

SELECT * FROM temp_table;
Copy after login
Copy after login

Through the above steps, you can easily implement the paging function of mysql.

Summary:

Mysql stored procedure is an efficient and reliable way to implement paging queries. By defining a stored procedure and passing in the corresponding parameters, the paging query function can be easily implemented. For some application scenarios that require a large number of paging queries, the use of stored procedures can greatly improve query efficiency.

The above is the detailed content of How to use mysql stored procedure to implement paging function. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!