MySQL-এ BOOLEAN টাইপ আসলে TINYINT(1) (০ বা ১)। এটিকে IF() ফাংশন ব্যবহার করে 'MALE'/'FEMALE' স্ট্রিং-এ রূপান্তর করা যায়।
উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> create table DemoTable815(Gender BOOLEAN); Query OK, 0 rows affected (0.84 sec)
mysql> insert into DemoTable815 values(true); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable815 values(false); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable815 values(false); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable815 values(true); Query OK, 1 row affected (0.16 sec)
সকল রেকর্ড দেখানো (রorganisation 저장: ১/০)
mysql> select * from DemoTable815;
+--------+ | Gender | +--------+ | 1 | | 0 | | 0 | | 1 | +--------+ 4 rows in set (0.00 sec)
IF দিয়ে স্ট্রিং-এ রূপান্তর
mysql> select if(Gender=true,'MALE','FEMALE') AS String from DemoTable815;
+--------+ | String | +--------+ | MALE | | FEMALE | | FEMALE | | MALE | +--------+ 4 rows in set (0.00 sec)
ব্যাখ্যা
Gender=true- বুলিয়ান এক্সপ্রেশন (১ = true, ০ = false)IF(condition, true_val, false_val)- শর্ত সত্য হলে প্রথম মান, মিথ্যা হলে দ্বিতীয় মানAS String- কলামের এলিয়াস
বিকল্প পদ্ধতি
CASE WHEN Gender THEN 'MALE' ELSE 'FEMALE' END- স্ট্যান্ডার্ড SQLELT(Gender+1, 'FEMALE', 'MALE')- ১-ভিত্তিক ইনডেক্সিং (১→FEMALE, ২→MALE)IF(Gender=1, 'MALE', 'FEMALE')- স্পষ্ট তুলনা
বेहতর ডিজাইন: ENUM ব্যবহার করুন
BOOLEAN-এর বদলে ENUM('MALE','FEMALE','OTHER') ব্যবহার করলে:
- ডেটা স্বয়ংক্রিয়ভাবে ভ্যালিডেট হয়
- স্টোরেজ কম লাগে (১-২ বাইট)
- রিপোর্টিং-এ সরাসরি মান পাওয়া যায়
- ইনডেক্সিং দ্রুত হয়
CREATE TABLE Users (
Gender ENUM('MALE','FEMALE','OTHER') NOT NULL
);