MySQL-এ CASE WHEN ব্যবহার করে কলামের মান NULL, খালি স্ট্রিং (''), নাকি সাধারণ মান তা সনাক্ত করা
MySQL-এ NULL এবং খালি স্ট্রিং '' ভিন্ন জিনিস। NULL = মান নেই, '' = খালি স্ট্রিং (length 0)। উভয় চেক করতে CASE WHEN ব্যবহার করা হয়।
সিনট্যাক্স
SELECT *,
CASE
WHEN yourColumn = '' THEN 'It is an empty string'
WHEN yourColumn IS NULL THEN 'It is a NULL value'
ELSE CONCAT(yourColumn, ' is a Name')
END AS Status
FROM yourTableName;
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE checkFieldDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(10),
-> PRIMARY KEY(Id)
-> );
ডেটা ইনসার্ট (NULL, '', এবং নাম)
mysql> INSERT INTO checkFieldDemo(Name) VALUES(NULL), ('John'), (NULL), (''), ('Carol'), (''), (NULL);
সকল রেকর্ড
mysql> SELECT * FROM checkFieldDemo;
+----+-------+ | Id | Name | +----+-------+ | 1 | NULL | | 2 | John | | 3 | NULL | | 4 | | | 5 | Carol | | 6 | | | 7 | NULL | +----+-------+
CASE WHEN দিয়ে চেক
mysql> SELECT *,
-> CASE
-> WHEN Name = '' THEN 'It is an empty string'
-> WHEN Name IS NULL THEN 'It is a NULL value'
-> ELSE CONCAT(Name, ' is a Name')
-> END AS ListOfValues
-> FROM checkFieldDemo;
ফলাফল
+----+-------+-----------------------+ | Id | Name | ListOfValues | +----+-------+-----------------------+ | 1 | NULL | It is a NULL value | | 2 | John | John is a Name | | 3 | NULL | It is a NULL value | | 4 | | It is an empty string | | 5 | Carol | Carol is a Name | | 6 | | It is an empty string | | 7 | NULL | It is a NULL value | +----+-------+-----------------------+
গুরুত্বপূর্ণ: WHERE Name = NULL কখনো কাজ করে না। সবসময় IS NULL বা IS NOT NULL ব্যবহার করুন। খালি স্ট্রিং চেক করতে Name = '' বা LENGTH(Name) = 0 ব্যবহার করুন।