ใช้ฟังก์ชัน CAST() หรือ CONVERT() เพื่อแปลงผลลัพธ์คำสั่ง MySQL เป็น UTF-8 ใช้ MySQL 8.0.12
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
หมายเหตุ: ควรใช้ utf8mb4 แทน utf8 เพื่อหลีกเลี่ยงคำเตือน เนื่องจาก utf8 ใน MySQL เป็น alias ของ utf8mb3
รูปแบบไวยากรณ์
SELECT yourColumnName1, CONVERT(yourColumnName2 USING utf8mb4) AS anyVariableName FROM yourTableName;
หรือรูปแบบอื่น:
SELECT yourColumnName1, CONVERT(CAST(yourColumnName2 AS BINARY) USING utf8mb4) AS anyVariableName FROM yourTableName;
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table ConvertOutputtoUtf8Demo ( Id int NOT NULL AUTO_INCREMENT, Name varchar(20), Age int, PRIMARY KEY(Id) ); Query OK, 0 rows affected (0.79 sec)
เพิ่มข้อมูล:
mysql> insert into ConvertOutputtoUtf8Demo(Name,Age) values('John',24); Query OK, 1 row affected (0.78 sec)
mysql> insert into ConvertOutputtoUtf8Demo(Name,Age) values('Larry',21); Query OK, 1 row affected (0.15 sec)
mysql> insert into ConvertOutputtoUtf8Demo(Name,Age) values('Carol',26); Query OK, 1 row affected (0.12 sec)
mysql> insert into ConvertOutputtoUtf8Demo(Name,Age) values('Mike',27); Query OK, 1 row affected (0.18 sec)
mysql> insert into ConvertOutputtoUtf8Demo(Name,Age) values('Sam',22); Query OK, 1 row affected (0.15 sec)
คำสั่งแปลงเป็น UTF-8:
mysql> SELECT Id, CONVERT(Name USING utf8mb4) AS ConvertToUtf8 FROM ConvertOutputtoUtf8Demo;
ผลลัพธ์:
+----+---------------+ | Id | ConvertToUtf8 | +----+---------------+ | 1 | John | | 2 | Larry | | 3 | Carol | | 4 | Mike | | 5 | Sam | +----+---------------+ 5 rows in set, 1 warning (0.00 sec)