ELSE IF thủ tục MySQL

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ưới

DELIMITER //

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ư sau

SELECT 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 ứng

Ví 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"];
8

Bạ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ư sau

DELIMITER //

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ư sau

SELECT 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 MySQL

Khi 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ông

DELIMITER //

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 

Chủ Đề