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

แยกสตริงและแทรกเป็นค่าแต่ละค่าลงในตาราง MySQL หรือไม่


คุณสามารถบรรลุสิ่งนี้ได้ด้วยความช่วยเหลือของคำสั่งที่เตรียมไว้ใน 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 วินาที)