Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo Stored Procedure MySQL với tham số LIMIT để giới hạn số bản ghi hiển thị

Sử dụng biến cục bộ DECLARE trong stored procedure để gán giá trị tham số vào LIMIT (MySQL không cho phép biến trực tiếp trong LIMIT cũ, cần biến).

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1368 (ClientId INT, ClientName VARCHAR(20));

Chèn dữ liệu (6 hàng):

mysql> INSERT INTO DemoTable1368 VALUES(101, 'Adam'), (102, 'Bob'), (103, 'John'), (104, 'Sam'), (105, 'Mike'), (106, 'Carol');

Tạo procedure nhận tham số limit:

mysql> DELIMITER //
mysql> CREATE PROCEDURE limit_Demo(IN limitValue INT)
    BEGIN
        DECLARE limValue INT;
        SET limValue = limitValue;
        SELECT * FROM DemoTable1368 LIMIT limValue;
    END //
mysql> DELIMITER ;

Gọi procedure lấy 3 hàng đầu:

mysql> CALL limit_Demo(3);

Kết quả:

+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 101      | Adam       |
| 102      | Bob        |
| 103      | John       |
+----------+------------+

Lưu ý:

  • MySQL 8.0+ cho phép LIMIT @var trực tiếp không cần DECLARE trung gian.
  • LIMIT không hỗ trợ OFFSET bằng biến trong phiên bản cũ - cần PREPARE / dynamic SQL.
  • Procedure chạy với quyền DEFINER - người gọi chỉ cần quyền EXECUTE.