06/04/2021, 14:50

Vòng lặp while trong MySQL - MySQL nâng cao

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 ...

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ả:

vong lap while trong mysql 1 png

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é.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0