MySQL কোয়েরির আউটপুট UTF-8-এ রূপান্তর করতে CAST() বা CONVERT() ফাংশন ব্যবহার করতে হয়। এখানে MySQL সংস্করণ 8.0.12 ব্যবহার করা হয়েছে। প্রথমে সংস্করণ যাচাই করা যাক:
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
এখানে utf8 ব্যবহার করলে আলাইয়াসে সংক্রান্ত সতর্কতা (warning) আসবে কারণ এখন utf8mb4 ব্যবহার করা হয়। তাই সতর্কতা এড়াতে utf8mb4 ব্যবহার করা উচিত।
নোট: কখনো UTF8 ব্যবহার করবেন না। বর্তমান সংস্করণের জন্য UTF8MB4 ব্যবহার করুন।
MySQL কোয়েরির আউটপুট UTF-8-এ রূপান্তর করার সিনট্যাক্স নিচে দেওয়া হলো:
SELECT yourColumnName1,convert(yourColumnName2 USING utf8) as anyVariableName FROM yourTableName;
আরেকটি সিনট্যাক্স নিচে দেওয়া হলো:
SELECT yourColumnName1,CONVERT(CAST(yourColumnName2 as BINARY) USING utf8) 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)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from ConvertOutputtoUtf8Demo;
আউটপুট নিচে দেওয়া হলো:
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 24 | | 2 | Larry | 21 | | 3 | Carol | 26 | | 4 | Mike | 27 | | 5 | Sam | 22 | +----+-------+------+ 5 rows in set (0.00 sec)
MySQL কোয়েরির আউটপুট UTF-8-এ রূপান্তর করার কোয়েরি নিচে দেওয়া হলো:
mysql> select Id,convert(Name using utf8) 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)
আরেকটি কোয়েরি ব্যবহার করা যেতে পারে:
mysql> SELECT Id,CONVERT(CAST(Name as BINARY) USING utf8) 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)
সারসংক্ষেপে, MySQL 8.0+ এ utf8mb4` ক্যারেক্টার সেট ডিফল্ট। CONVERT(... USING utf8mb4) বা CAST(... AS CHAR CHARACTER SET utf8mb4) ব্যবহার করে আউটপুট ক্যারেক্টার সেট নিশ্চিত করা যায়। পুরনো utf8 এলিয়াস এখন ডিপ্রিকেটেড।