Thắc mắc về function trong MariaDB

Mình đang tìm hiểu về MariaDB, mục đích mình muốn viết một function đơn giản để lấy ra số lượng môn học mà sinh viên đó đăng ý, ở bảng CourseRegistration chứa đẩy đủ thông tin
Lúc đâu mình thế này

CREATE FUNCTION getListCourseForStudent(Studentid int(11))
RETURNS INT
DETERMINISTIC
BEGIN
	DECLARE number int;
	SELECT number = count(studentid) FROM ManagementStudent.CourseRegistration WHERE studentid = Studentid;
	RETURN number; 
END

thi báo lỗi này: Not allowed to return a result set from a function

Sau đó mình lên mạng tìm trên thì sữa thế này

CREATE FUNCTION getListCourseForStudent(Studentid int(11))
RETURNS INT
DETERMINISTIC
BEGIN
	DECLARE number int;
	SELECT count(studentid) INTO number FROM ManagementStudent.CourseRegistration WHERE studentid = Studentid;
	RETURN number; 
END

Nhưng khi chạy thì truyền tham số nào nó cũng đưa ra tất cả các môn học của tất cả sinh viên.

Sai đâu vậy mọi người.

mariadb không phân biệt hoa thường
nên câu where đó là vô dụng, bạn thử sửa tên param lại

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?