เซิร์ฟเวอร์ MySQL รองรับคำสั่งที่เตรียมไว้ ซึ่งมีประโยชน์เมื่อเราต้องการเรียกใช้การสืบค้นจำนวนมากที่แตกต่างกันในรายละเอียดเพียงเล็กน้อยเท่านั้น เราสามารถเตรียมคำสั่งและดำเนินการได้หลายครั้งและแต่ละครั้งมีค่าข้อมูลที่แตกต่างกัน โดยทั่วไป คำสั่งที่เตรียมไว้ใน MySQL จะใช้ประโยชน์จากโปรโตคอลไบนารีของไคลเอ็นต์/เซิร์ฟเวอร์ คำสั่งที่เตรียมไว้ให้ประสิทธิภาพที่เพิ่มขึ้นเนื่องจากเซิร์ฟเวอร์แยกวิเคราะห์คำสั่งที่สมบูรณ์เพียงรายการเดียว
ต่อไปนี้เป็นขั้นตอนในการใช้คำสั่งที่เตรียมไว้ใน MySQL -
เตรียมคำสั่ง
เป็นขั้นตอนแรกในการเตรียมคำสั่งโดยใช้คำสั่ง PREPARE ตัวอย่างเช่น ต่อไปนี้เป็นคำสั่งที่จัดทำโดยใช้ข้อมูลจากตาราง 'ประกวดราคา' -
ตัวอย่าง
PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’
ดำเนินการคำสั่งที่เตรียมไว้
เป็นขั้นตอนที่สองที่เราจะดำเนินการคำสั่งที่จัดเตรียมโดยใช้คำสั่ง 'PREPARE' ตัวอย่างเช่น เราจะดำเนินการคำสั่ง stmt ที่เตรียมไว้ด้วยไวยากรณ์ต่อไปนี้ −
ตัวอย่าง
EXECUTE stmt USING @variable_name;
ที่นี่ @variable_name จะมีค่าที่เราต้องการให้ tp pass แทนที่ ? ในคำสั่ง PREPARE เราจำเป็นต้องตั้งค่าของ @variable_name โดยใช้คำสั่ง SET ก่อนดำเนินการคำสั่งที่เตรียมไว้
จัดสรรคำสั่งที่เตรียมไว้
เป็นขั้นตอนสุดท้ายที่เราจะเผยแพร่คำสั่งที่เตรียมไว้โดยใช้คำสั่ง DEALLOCATE ตัวอย่างเช่น เราจะจัดสรรคืนคำสั่ง stmt ที่เตรียมไว้โดยใช้ไวยากรณ์ต่อไปนี้ -
ตัวอย่าง
DEALLOCATE PREPARE stmt;
ต่อไปนี้คือข้อความค้นหาที่เราเรียกใช้คำสั่งที่เตรียมไว้ −
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; Query OK, 0 rows affected (0.09 sec) Statement prepared mysql> SET @A = 'Singla Group.'; Query OK, 0 rows affected (0.00 sec) mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+ 1 row in set (0.07 sec) mysql> DEALLOCATE PREPARE stmt; Query OK, 0 rows affected (0.00 sec)