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

MySQL-এ CHAR() ফাংশনের বিপরীত ফাংশন: ASCII() ও ORD()

CHAR() ফাংশন সংখ্যাকে ক্যারেক্টারে রূপান্তর করে। এর বিপরীত কাজ করে ASCII() (বামের ক্যারেক্টারের ASCII ভ্যালু) এবং ORD() (বামের ক্যারেক্টারের কোড পয়েন্ট, মাল্টিবাইট সাপোর্টসহ)।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (Value INT, Value1 CHAR(1), Value2 CHAR(1));
Query OK, 0 rows affected (0.80 sec)
mysql> INSERT INTO DemoTable VALUES (65, 'A', 'A');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable VALUES (97, 'a', 'a');
Query OK, 1 row affected (0.13 sec)

রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable;

আউটপুট:

+-------+--------+--------+
| Value | Value1 | Value2 |
+-------+--------+--------+
| 65    | A      | A      |
| 97    | a      | a      |
+-------+--------+--------+
2 rows in set (0.00 sec)

CHAR(), ASCII(), ORD() একসাথে ব্যবহার

mysql> SELECT CHAR(Value), ASCII(Value1), ORD(Value2) FROM DemoTable;

ফলাফল:

+-------------+---------------+-------------+
| CHAR(Value) | ASCII(Value1) | ORD(Value2) |
+-------------+---------------+-------------+
| A           | 65            | 65          |
| a           | 97            | 97          |
+-------------+---------------+-------------+
2 rows in set (0.03 sec)

পার্থক্য: ASCII() বনাম ORD()

ফাংশনবর্ণনাবহুবাইট ক্যারেক্টারের জন্য
ASCII(str)স্ট্রিংয়ের প্রথম ক্যারেক্টারের ASCII ভ্যালু (০-২৫৫) রিটার্ন করে।প্রথম বাইটের ভ্যালু রিটার্ন করে (আংশিক কোড পয়েন্ট)।
ORD(str)স্ট্রিংয়ের প্রথম ক্যারেক্টারের ইউনিকোড কোড পয়েন্ট রিটার্ন করে।পুরো কোড পয়েন্ট রিটার্ন করে (সঠিক)।

উদাহরণ: বাংলা ক্যারেক্টার 'অ' (U+0985)

SELECT ASCII('অ'), ORD('অ'), CHAR(2437); -- ASCII=224 (প্রথম বাইট), ORD=2437 (পূর্ণ কোড পয়েন্ট)

সুপারিশ: ইউনিকোড/বহুবাইট ডেটার জন্য সবসময় ORD() ব্যবহার করুন।

  1. MySQL TRIM() ফাংশন এর উদ্দেশ্য কী?

  2. MySQL-এ <=> অপারেটর কী এবং কীভাবে কাজ করে?

  3. MySQL-এ <> অপারেটরের অর্থ এবং ব্যবহার

  4. MySQL DECIMAL(x,0) ডেটা টাইপের রেঞ্জ ও স্টোরেজ প্রয়োজনীয়তা