Cơ sở dữ liệu MySQL cung cấp cho bạn một câu lệnh IF
mà bạn có thể sử dụng trong các hàm và thủ tục được lưu trữ
Câu lệnh IF
cho phép bạn tạo các truy vấn có điều kiện sẽ chỉ được thực hiện khi đáp ứng một điều kiện cụ thể
Ví dụ: giả sử bạn muốn kiểm tra xem độ dài giá trị TEXT
có lớn hơn 5 hay không
Bạn có thể tạo một hàm
SELECT charLength["Hello"],
charLength["Morning"];
0 với câu lệnh IF
như hình bên dướiDELIMITER //
CREATE FUNCTION charLength[str TEXT]
RETURNS TEXT DETERMINISTIC
BEGIN
DECLARE result TEXT DEFAULT CONCAT[str, " length is 5 or less"];
IF CHAR_LENGTH[str]> 5 THEN
SET result = CONCAT[str, " length is greater than 5 "];
END IF;
RETURN result;
END //
DELIMITER ;
Sau đó, bạn có thể sử dụng câu lệnh
SELECT charLength["Hello"],
charLength["Morning"];
2 để gọi hàm như sauSELECT charLength["Hello"],
charLength["Morning"];
Đầu ra trả về sẽ như hình dưới đây
+---------------------------+-----------------------------------+
| charLength["Hello"] | charLength["Morning"] |
+---------------------------+-----------------------------------+
| Hello length is 5 or less | Morning length is greater than 5 |
+---------------------------+-----------------------------------+
1 row in set [0.00 sec]
Câu lệnh IF
có thể được kết hợp với câu lệnh
SELECT charLength["Hello"],
charLength["Morning"];
4 để cung cấp một truy vấn thay thế để thực thi khi điều kiện của câu lệnh IF
không được đáp ứngVí dụ: giả sử bạn muốn so sánh hai giá trị
SELECT charLength["Hello"],
charLength["Morning"];
6 và in một văn bản có nội dung SELECT charLength["Hello"],
charLength["Morning"];
7 hoặc SELECT charLength["Hello"],
charLength["Morning"];
8Bạn có thể tạo một hàm trong MySQL và tạo câu lệnh
SELECT charLength["Hello"],
charLength["Morning"];
9 có điều kiện như sauDELIMITER //
CREATE FUNCTION compare[x INT, y INT]
RETURNS TEXT DETERMINISTIC
BEGIN
DECLARE result TEXT;
IF x > y THEN
SET result = CONCAT[x, " is larger than ", y];
ELSE
SET result = CONCAT[x, " is smaller than ", y];
END IF;
RETURN result;
END //
DELIMITER ;
Bây giờ bạn có thể gọi hàm bằng câu lệnh
SELECT charLength["Hello"],
charLength["Morning"];
2 như sauSELECT compare[1, 2], compare[10, 5];
Tập kết quả sẽ như hình bên dưới
+---------------------+---------------------+
| compare[1, 2] | compare[10, 5] |
+---------------------+---------------------+
| 1 is smaller than 2 | 10 is larger than 5 |
+---------------------+---------------------+
1 row in set [0.00 sec]
Và đó là cách bạn tạo một câu lệnh
SELECT charLength["Hello"],
charLength["Morning"];
9 trong các hàm của MySQLKhi bạn có nhiều hơn hai điều kiện, bạn cũng có thể sử dụng nhiều câu lệnh
+---------------------------+-----------------------------------+
| charLength["Hello"] | charLength["Morning"] |
+---------------------------+-----------------------------------+
| Hello length is 5 or less | Morning length is greater than 5 |
+---------------------------+-----------------------------------+
1 row in set [0.00 sec]
2 trong đó bạn xác định từng điều kiện mà bạn muốn kiểm tra theo trình tựĐây là một hàm ví dụ khác mà bạn cũng cần kiểm tra xem hai giá trị
SELECT charLength["Hello"],
charLength["Morning"];
6 có bằng nhau khôngDELIMITER //
CREATE FUNCTION compare[x INT, y INT]
RETURNS TEXT DETERMINISTIC
BEGIN
DECLARE result TEXT;
IF x > y THEN
SET result = CONCAT[x, " is larger than ", y];
ELSEIF x