Bài 07: Vòng lặp while trong MySql

Cuối cùng cũng tới bài căng nhất này đó là bài vòng lặp while trong MYSQL. Nếu bạn là dân lâp trình web  thì cũng không quên vòng lặp while trong php nhỉ? Nó ít khi được sử dụng khi viết ứng dụng web (hay dùng foreach) nhưng trong MYSQL thì lại khác, chúng ta sử dụng vòng lặp WHILE rất nhiều.

Trong MySql có ba vòng lặp chính đó là vòng lặp while, vòng lặp repeat, vòng lặp với lệnh LOOPLIEVE. Trong bài này chúng ta tìm hiểu vòng lặp while trước.

1. Cú pháp vòng lặp while trong MYSQL

Ta có cú pháp vòng lặp while như sau:

WHILE expression DO
   Statements
END WHILE;
Nếu biểu thức expression có giá trị là sai thì vòng lặp sẽ dừng, ngược lại thì vòng lặp sẽ được thực hiện. Chính vì vậy khi sử dụng bạn cẩn thận nếu như bị lặp vô hạn thì ưng dụng của bạn sẽ bị chết ngay lập tức.

2. Ví dụ vòng lặp While trong MYSQL

Ví dụ: Viết chương trình Stored Procedure in ra màn hình các số từ a tới b bằng vòng lặp While.

Trong ví dụ này mình có sử dụng  hàm CONCAT, đây là một hàm nỗi chuỗi trong MYSQL và tham số truyền vào của nó là danh sách các chuỗi cần nối cách nhau bởi dấu phẩy. Hàm này không giới hạn tham số truyền vào. Nếu như bạn sử dụng cú pháp dấu + để nối chuỗi thì sai nhé, trong MYSQL không hỗ trợ phép toan này đối với chuỗi mà chỉ dành cho number.

DELIMITER $$

DROP PROCEDURE IF EXISTS loopWhile$$

CREATE PROCEDURE loopWhile(
	IN a INT(11),
	IN b INT(11)
)
BEGIN
	-- Chuoi in ra man hinh--
        DECLARE str  VARCHAR(255) DEFAULT '';
	
        WHILE (a <= b) DO
		SET  str = CONCAT(str,a,',');
                SET  a = a + 1; 
        END WHILE;
        
        SELECT str;
END$$
DELIMITER ;
Chạy thử:

CALL loopWhile(1,10);
Kết quả:

Lời kết:

Bài này chỉ trình bày tới đây thôi vì nội dung của nó cũng không có gì nhiều, chỉ yếu đưa ra cú pháp và ví dụ sử dụng vòng lặp while trong mysql để các bạn dễ hiểu hơn thôi. Ở một serie khác chúng ta sẽ làm những bài tập vận dụng nhiều hơn chứ bây giờ mà đưa vào thì các bạn sẽ loạn mất. chúc các bạn học tốt nhé.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.