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

ใช้ Conditional MySQL Query ในกระบวนงานที่เก็บไว้หรือไม่


สำหรับการสืบค้น MySQL แบบมีเงื่อนไข คุณสามารถใช้แนวคิด IF ELSE ในขั้นตอนการจัดเก็บ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1 ( Id int ); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1 (10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า DemoTable1 (20) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1 ( 30);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable1;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+| รหัส |+------+| 10 || 20 || 30 |+------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตารางที่สอง

mysql> สร้างตาราง DemoTable2 ( Id int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.07 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable2 (40) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable2 (50) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable2 ( 60);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.11 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable2;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+| รหัส |+------+| 40 || 50 || 60 |+------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างกระบวนงานที่เก็บไว้สำหรับการสืบค้น MySQL แบบมีเงื่อนไข

mysql> DELIMITER // mysql> CREATE PROCEDURE Conditional_Query(id int) BEGIN IF id>=40 แล้ว เลือก * จาก DemoTable2; ELSE เลือก * จาก DemoTable1; สิ้นสุดถ้า; END // แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.21 วินาที) mysql> DELIMITER;

ตอนนี้คุณสามารถเรียกกระบวนงานที่เก็บไว้ด้วยความช่วยเหลือของคำสั่ง CALL -

mysql> โทร Conditional_Query(100);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+| รหัส |+------+| 40 || 50 || 60 |+------+3 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.03 วินาที)

โทรอีกครั้งและส่งค่าอื่น -

mysql> โทร Conditional_Query(13);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------+| รหัส |+------+| 10 || 20 || 30 |+------+3 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.02 วินาที)