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

จะแปลงข้อมูลที่เข้ารหัสผิดเป็น UTF-8 ใน MySQL ได้อย่างไร


คุณต้องใช้ฟังก์ชัน CONVERT() ร่วมกับคีย์เวิร์ดไบนารี ไวยากรณ์มีดังนี้ −

SELECT CONVERT(binary CONVERT(yourColumnName using latin1) USING UTF8) เป็น anyAliasName FROM yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง UtfDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อ varchar(15), -> คีย์หลัก (Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.76 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่ง INSERT แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า UtfDemo(Name)('Obama’s');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.28 วินาที)mysql> แทรกลงในค่า UtfDemo(ชื่อ) ('John’s');แบบสอบถาม ตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงในค่า UtfDemo (ชื่อ) ('Carol's'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า UtfDemo (ชื่อ) ('Sam†™s');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---+----------------+| รหัส | ชื่อ |+----+----------------+| 1 | ของโอบามา || 2 | จอห์น || 3 | แครอล || 4 | Sam’s |+---+----------------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อแปลงข้อมูลที่เข้ารหัสผิดเป็น UTF8 -

mysql> เลือก CONVERT(ไบนารี CONVERT (ชื่อโดยใช้ latin1) โดยใช้ utf8) เป็น ListOfName จาก UtfDemo

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+| ListOfName |+-----------+| โอบามา || จอห์น || แครอล || แซม |+------------+4 แถวในชุด 1 คำเตือน (0.00 วินาที)