কম্পিউটার টিউটোরিয়াল

MySQL কোয়েরির আউটপুট UTF-8-এ রূপান্তর করা

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 এলিয়াস এখন ডিপ্রিকেটেড।

  1. MySQL কোয়েরির আউটপুট এক্সেল বা .txt ফাইলে কীভাবে সংরক্ষণ করবেন?

  2. MySQL-এ YYYY-MM-DD ফরম্যাটকে DD Month, YYYY-এ রূপান্তর করা (DATE_FORMAT)

  3. MySQL-এ খালি মান (Empty String) NULL-এ রূপান্তর করা

  4. MySQL-এ টাইমস্ট্যাম্পকে মাসে কনভার্ট করা