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

คำสั่ง MySQL IF ELSE สามารถใช้ในขั้นตอนการจัดเก็บได้อย่างไร?


MySQL หากเป็นอย่างอื่น คำสั่งใช้โครงสร้างตามเงื่อนไขพื้นฐานเมื่อนิพจน์ประเมินเป็นเท็จ ไวยากรณ์ของมันคือ −

คำสั่ง IF นิพจน์ THEN;ELSE else-statements;END IF;

ข้อความต้องลงท้ายด้วยเครื่องหมายอัฒภาค

เพื่อแสดงการใช้ IF ELSE คำสั่งภายใน MySQL กระบวนงานที่เก็บไว้ เรากำลังสร้างขั้นตอนการจัดเก็บต่อไปนี้ซึ่งขึ้นอยู่กับค่าดังที่แสดงด้านล่างของตารางชื่อ 'student_info' -

mysql> เลือก * จาก student_info;+------+---------+------------+--------- ----+| id | ชื่อ | ที่อยู่ | เรื่อง |+------+---------+-----------+-----------+| 101 | YashPal | อมฤตสาร์ | ประวัติศาสตร์ || 105 | Gaurav | ชัยปุระ | วรรณกรรม || 125 | รามัน | ชิมลา | คอมพิวเตอร์ |+------+---------+-----------+-----------+3 แถวในชุด (0.00 วินาที)

ข้อความค้นหาต่อไปนี้จะสร้างขั้นตอนที่ชื่อว่า 'coursedetails_IFELSE' ซึ่งมีคำสั่ง IF ELSE อยู่ในนั้น -

mysql> DELIMITER //;mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50)) -> BEGIN -> DECLARE Sub Varchar(20); -> เลือกหัวเรื่องเป็นย่อย -> จาก Student_info โดยที่ S_Subject =หัวเรื่อง; -> IF Sub ='คอมพิวเตอร์' แล้ว -> SET S_Course ='B.Tech (CSE)'; -> ELSE -> SET S_Course ='หัวเรื่องไม่อยู่ในตาราง'; -> สิ้นสุดถ้า; -> END //แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

ตอนนี้ เราจะเห็นผลลัพธ์ด้านล่างเมื่อเราเรียกใช้ขั้นตอนนี้ -

mysql> ตัวคั่น; //mysql> CALL coursedetails_IFELSE('Computers', @S_Course);Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> Select @S_Course;+-------------+| @S_Course |+-------------+| B.Tech(CSE) |+-------------+1 แถวในชุด (0.00 วินาที)mysql> CALL coursedetails_IFELSE ('ประวัติ', @S_Course); ตกลง ตกลง 0 แถวได้รับผลกระทบ ( 0.00 วินาที) mysql> เลือก @S_Course;+--------------------------------+| @S_Course |+--------------------------------+| เรื่องไม่อยู่ในตาราง |+--------------------------------+1 แถวในชุด (0.00 วินาที)