คุณสามารถบรรลุสิ่งนี้ได้ด้วยความช่วยเหลือของคำสั่งที่เตรียมไว้ใน MySQL ก่อนอื่นคุณต้องสร้างตาราง แบบสอบถามในการสร้างตารางมีดังนี้
mysql> สร้างตาราง University -> ( -> UserId int, -> UniversityId int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)
ขั้นแรก ให้เราตั้งค่าในคอลัมน์ที่กล่าวถึงข้างต้น ที่นี่ เราได้ตั้งค่าสตริงด้วยค่าที่คั่นด้วยเครื่องหมายจุลภาคสำหรับคอลัมน์ UserId เราจะแยกส่วนนี้และแทรกลงในตาราง
mysql> SET @userId ='8,9,10';Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)mysql> SET @UniversityId =100; Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที) mysql> SET @myValues =REPLACE(@userId, ',', CONCAT(', ', @UniversityId, '),('));Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> SET @myValues =CONCAT('(', @ myValues, ', ', @UniversityId, ')');Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> SET @insertQuery1 =CONCAT('INSERT INTO University VALUES', @myValues);Query OK, 0 แถวได้รับผลกระทบ ( 0.00 วินาที)
หลังจากดำเนินการตามขั้นตอนทั้งหมดแล้ว คุณต้องดำเนินการ @insertQuery1 ที่กล่าวถึงข้างต้น
แบบสอบถามมีดังนี้
mysql> PREPARE st FROM @insertQuery1; Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)Statement preparemysql> EXECUTE st; Query OK, 3 แถวที่ได้รับผลกระทบ (0.18 วินาที) บันทึก:3 รายการซ้ำ:0 คำเตือน:0
ตอนนี้แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
mysql> เลือก *จากมหาวิทยาลัย
ต่อไปนี้เป็นผลลัพธ์ที่แสดงว่าเราแยกสตริงสำเร็จ (8, 9, 10) และแทรกเป็นค่าแต่ละค่า
<ก่อนหน้า>+---------+--------------+| รหัสผู้ใช้ | UniversityId |+---------+--------------+| 8 | 100 || 9 | 100 || 10 | 100 |+---------+---------------------+3 แถวในชุด (0.00 วินาที)ตอนนี้จัดสรรคืนคำสั่งที่เตรียมไว้
แบบสอบถามมีดังนี้
mysql> DEALLOCATE PREPARE st;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)