Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แสดงข้อความจาก Stored Procedure ใน MySQL

การแสดงข้อความ (Message) จาก Stored Procedure ใน MySQL

ใช้ SELECT CONCAT(...) หรือ SELECT 'message' ภายใน Procedure พร้อมเงื่อนไข IF-ELSE

ตัวอย่าง: Procedure แสดงข้อความตามเงื่อนไข

mysql> DELIMITER //
mysql> CREATE PROCEDURE showMessage(value INT, Name VARCHAR(20))
    BEGIN
        IF (value > 100) THEN
            SELECT CONCAT("HELLO", " ", Name);
        ELSE
            SELECT CONCAT("BYE", " ", Name);
        END IF;
    END //
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;

Case 1: เรียกด้วยค่า > 100

mysql> CALL showMessage(200, 'John');
+--------------------------+
| CONCAT("HELLO", " ", Name) |
+--------------------------+
| HELLO John               |
+--------------------------+

Case 2: เรียกด้วยค่า < 100

mysql> CALL showMessage(10, 'John');
+------------------------+
| CONCAT("BYE", " ", Name) |
+------------------------+
| BYE John               |
+------------------------+

วิธีอื่นในการส่งค่ากลับ:

  • OUT Parameter: CREATE PROC p(OUT msg VARCHAR(100)) BEGIN SET msg = 'Hello'; END → CALL p(@msg); SELECT @msg;
  • RETURN (Function): ใช้ CREATE FUNCTION แทน Procedure หากต้องการคืนค่า Scalar
  • Signal/Resignal: สำหรับ Error Handling (SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error')

หมายเหตุ: SELECT ใน Procedure จะส่ง Result Set กลับไปยัง Client (เหมือน Query ปกติ)