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

การใช้อักขระหลีก (\) ในไฟล์ข้อความขณะนำเข้าข้อมูลจากไฟล์ข้อความไปยังตาราง MySQL คืออะไร


การใช้อักขระหลีก (\) จะมีความสำคัญมากเมื่อเราต้องการแทรกเครื่องหมายจุลภาคหรืออักขระอื่นใดระหว่างค่าของไฟล์ สามารถเข้าใจได้ด้วยความช่วยเหลือของตัวอย่าง สมมติว่าเราต้องการนำเข้าข้อมูลจากไฟล์ข้อความชื่อ A.txt ซึ่งมีข้อมูลต่อไปนี้ ลงในตาราง MySQL -

id, Name, Country, Salary105, Chum, Marsh,USA, 11000106, Danny, Harrison,AUS, 12000

ในที่นี้ เราจะเห็นว่าชื่อไฟล์มีสองค่าคือ ชื่อ นามสกุลคั่นด้วยเครื่องหมายจุลภาค ตอนนี้ แบบสอบถามต่อไปนี้จะนำเข้าข้อมูลจากไฟล์ข้อความด้านบน 'A.txt' ไปยัง 'employee4_tbl' -

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' ลงในตาราง employee4_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS; Query OK, 2 แถวได้รับผลกระทบ, 4 คำเตือน (0.05 วินาที) บันทึก:2 ลบ:0 ข้าม :0 คำเตือน:4

เราจะเห็นว่ามี 4 คำเตือนเมื่อเรานำเข้าข้อมูลจาก 'A.txt' ไปยังตาราง แบบสอบถามต่อไปนี้จะแสดงให้เราเห็นสิ่งที่ถูกแทรกลงในตาราง -

mysql> เลือก * จาก employee4_tbl;+------+---------+----------+---------+| รหัส | ชื่อ | ประเทศ | เงินเดือน |+------+---------+----------+---------+| 105 | ชุม | มาร์ช | 0 || 106 | แดนนี่ | แฮร์ริสัน | 0 |+------+---------+----------+-------+2 แถวในชุด (0.00 วินาที) 

ชุดผลลัพธ์ข้างต้นแสดงให้เห็นว่า MySQL คาดการณ์ 'นามสกุล' ซึ่งเป็นค่าของฟิลด์ 'ชื่อ' เป็นค่าของ 'ประเทศ' ที่ยื่นออกมา

ปัญหาข้างต้นสามารถขจัดได้โดยใส่อักขระหลีกลงในไฟล์ข้อความดังนี้ −

id, Name, Country, Salary105, Chum\, Marsh,USA, 11000106, Danny\, Harrison,AUS, 12000

ตอนนี้นำเข้าไฟล์ข้อความนี้ไปยังตาราง MySQL ด้วยความช่วยเหลือของแบบสอบถามต่อไปนี้ -

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' ลงในตาราง Employee5_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS; Query OK, 2 แถวได้รับผลกระทบ (0.03 วินาที) ระเบียน:2 ถูกลบ:0 ข้าม:0 คำเตือน :0

เราจะเห็นว่าไม่มีคำเตือนเหมือนในข้อความค้นหาข้างต้นก่อนหน้านี้ ตอนนี้ เราสามารถเห็นสิ่งที่นำเข้ามาได้ด้วยความช่วยเหลือของแบบสอบถามต่อไปนี้ -

mysql> เลือก * จาก employee5_tbl;+------+----------------+----------+---- ----+| รหัส | ชื่อ | ประเทศ | เงินเดือน |+------+----------------+----------+-------+| 105 | ชุม,มาร์ช | สหรัฐอเมริกา | 11000 || 106 | แดนนี่,แฮร์ริสัน | AUS | 12000 |+------+----------------+----------+-------+2 แถวใน ตั้งค่า (0.00 วินาที)