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

แปลงผลลัพธ์ของแบบสอบถาม MySQL เป็น UTF8 หรือไม่


คุณต้องใช้ฟังก์ชัน CAST() หรือ CONVERT() เพื่อแปลงเอาต์พุตของการสืบค้น MySQL เป็น UTF8 ที่นี่ฉันใช้ MySQL เวอร์ชัน 8.0.12 ให้เราตรวจสอบเวอร์ชันก่อน:

mysql> เลือกเวอร์ชัน ();+-----------+| รุ่น() |+-----------+| 8.0.12 |+-----------+1 แถวในชุด (0.00 วินาที)

ในนี้ถ้าคุณใช้ utf8 คุณจะได้รับคำเตือนเกี่ยวกับนามแฝงเพราะมี utf8mb4 ดังนั้นคุณจึงสามารถหลีกเลี่ยงคำเตือนได้โดยการวาง utf8mb4

หมายเหตุ :ห้ามใช้ UTF8.0 สำหรับเวอร์ชันปัจจุบัน ให้ใช้ UTF8MB4

นี่คือรูปแบบการแปลงผลลัพธ์ของการสืบค้น MySQL เป็น UTF8:

เลือก yourColumnName1,convert(yourColumnName2 USING utf8) เป็น anyVariableName FROM yourTableName;

คุณสามารถใช้ไวยากรณ์อื่นซึ่งมีดังต่อไปนี้:

เลือก yourColumnName1,CONVERT(CAST(yourColumnName2 as BINARY) โดยใช้ utf8) เป็น anyVariableName จาก yourTableName;

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

mysql> สร้างตาราง ConvertOutputtoUtf8Demo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> Age int, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 0.79 วินาที)

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

mysql> แทรกลงใน ConvertOutputtoUtf8Demo(Name,Age) values('John',24);Query OK, 1 แถวได้รับผลกระทบ (0.78 วินาที)mysql> แทรกลงใน ConvertOutputtoUtf8Demo(Name,Age) ค่า('Larry',21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน ConvertOutputtoUtf8Demo (ชื่อ, อายุ) ค่า ('Carol', 26); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน ConvertOutputtoUtf8Demo (ชื่อ, อายุ) values('Mike',27);Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงใน ConvertOutputtoUtf8Demo(Name,Age) values('Sam',22);Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที) 

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

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

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

<ก่อนหน้า>+----+---------+------+| รหัส | ชื่อ | อายุ |+----+-------+------+| 1 | จอห์น | 24 || 2 | แลร์รี่ | 21 || 3 | แครอล | 26 || 4 | ไมค์ | 27 || 5 | แซม | 22 |+----+-------+------+5 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อแปลงผลลัพธ์ของแบบสอบถาม MySQL เป็น UTF8:

mysql> เลือก Id, แปลง (ชื่อโดยใช้ utf8) เป็น ConvertToUtf8 จาก ConvertOutputtoUtf8Demo;

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

<ก่อนหน้า>+----+--------------+| รหัส | ConvertToUtf8 |+----+--------------+| 1 | จอห์น || 2 | แลร์รี่ || 3 | แครอล || 4 | ไมค์ || 5 | แซม |+----+--------------+5 แถวในชุด 1 คำเตือน (0.00 วินาที)

คุณสามารถใช้แบบสอบถามอื่นซึ่งมีดังนี้:

mysql> SELECT Id,CONVERT(CAST(Name as BINARY) USING utf8) as ConvertToUtf8 FROM ConvertOutputtoUtf8Demo;

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

<ก่อนหน้า>+----+--------------+| รหัส | ConvertToUtf8 |+----+--------------+| 1 | จอห์น || 2 | แลร์รี่ || 3 | แครอล || 4 | ไมค์ || 5 | แซม |+----+--------------+5 แถวในชุด 1 คำเตือน (0.00 วินาที)