MySQL-এ একটি কলাম NULL হলে অন্য কলাম দিয়ে সর্ট করার জন্য ORDER BY IFNULL(col1, col2) ব্যবহার করা হয়। এটি কোয়েলেসিং লজিক বাস্তবায়ন করে।
টেবিল এবং ডেটা
CREATE TABLE DemoTable (
Name VARCHAR(20),
CountryName VARCHAR(20)
);
INSERT INTO DemoTable VALUES('Chris', NULL);
INSERT INTO DemoTable VALUES('David', 'AUS');
INSERT INTO DemoTable VALUES(NULL, 'UK');
INSERT INTO DemoTable VALUES(NULL, 'AUS');
INSERT INTO DemoTable VALUES(NULL, NULL);
কুয়েরি: Name NULL হলে CountryName দিয়ে সর্ট
SELECT * FROM DemoTable
ORDER BY IFNULL(Name, CountryName);
ফলাফল
+-------+-------------+
| Name | CountryName |
+-------+-------------+
| NULL | NULL |
| NULL | AUS |
| Chris | NULL |
| David | AUS |
| NULL | UK |
+-------+-------------+
ব্যাখ্যা
IFNULL(Name, CountryName)— Name নন-নাল হলে Name, নাল হলে CountryName রিটার্ন করে- সর্টিং এই রিটার্নড ভ্যালুর উপর হয়
- NULL মানগুলো সবচেয়ে আগে আসে (ASC ডিফল্ট)
COALESCE() ব্যবহার (স্ট্যান্ডার্ড)
ORDER BY COALESCE(Name, CountryName, 'ZZZ')
COALESCEএকাধিক আর্গুমেন্ট নেয়, প্রথম নন-নাল রিটার্ন করে'ZZZ'— ফলব্যাক ভ্যালু, সব NULL হলে শেষে যাবে
NULLS FIRST/LAST (MySQL 8.0.2+)
ORDER BY Name NULLS FIRST, CountryName NULLS LAST