Stored Procedure MySQL không lấy toàn bộ bảng?
Bạn có thể sử dụng SELECT * FROM yourTableName trong stored procedure. Hãy tạo một bảng trước:
mysql> create table DemoTable654 (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(100)
);
Query OK, 0 rows affected (0.70 sec)
Chèn một số bản ghi vào bảng bằng lệnh insert:
mysql> insert into DemoTable654(StudentFirstName) values('John');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable654(StudentFirstName) values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable654(StudentFirstName) values('Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable654(StudentFirstName) values('Robert');
Query OK, 1 row affected (0.12 sec)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select:
mysql> select * from DemoTable654;
Điều này sẽ tạo ra đầu ra sau:
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | John | | 2 | Sam | | 3 | Mike | | 4 | Robert | +-----------+------------------+ 4 rows in set (0.00 sec)
Truy vấn sau lấy các bản ghi của toàn bộ bảng sử dụng stored procedure:
mysql> DELIMITER //
mysql> CREATE PROCEDURE getWholeTable()
BEGIN
SELECT * FROM DemoTable654;
END
//
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;
Bây giờ bạn có thể gọi stored procedure trên bằng lệnh call:
mysql> call getWholeTable();
Điều này sẽ tạo ra đầu ra sau:
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | John | | 2 | Sam | | 3 | Mike | | 4 | Robert | +-----------+------------------+ 4 rows in set (0.08 sec) Query OK, 0 rows affected (0.13 sec)