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

MySQL-এ IFNULL() ব্যবহার করে কন্ডিশনাল ORDER BY (কলাম NULL হলে অন্য কলাম)

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
  1. MySQL-এ অটো-ইনক্রিমেন্ট কলাম অনুযায়ী সর্ট (ORDER BY Id DESC)

  2. MySQL-এ আইটেমের অর্ডার পরিবর্তন করা

  3. MySQL-এ গ্রুপ করা ফিল্ডের মাধ্যমে ORDER BY করার পদ্ধতি

  4. MySQL-এ WHERE IN ক্লজে NULL হ্যান্ডলিং