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

MySQL-এ ORDER BY: শেষ ৩ মাসের ডেটা اولে, তারপর অ্যালফাবেটিক্যালি সর্ট

বুলিয়ান এক্সপ্রেশন ও DESC দিয়ে কাস্টম সর্টিং

ORDER BY condition DESC, column প্যাটার্ন ব্যবহার করে নির্দিষ্ট ডেট রেঞ্জের রোকে উপরে আনা ও বাকিগুলোকে অ্যালফাবেটিক্যালি সর্ট করা যায়।

উদাহরণ

mysql> CREATE TABLE DemoTable1526 (CustomerName VARCHAR(20), PurchaseDate DATE);
mysql> INSERT INTO DemoTable1526 VALUES ('Adam','2019-06-01'), ('Sam','2019-04-26'), ('Chris','2019-05-24'), ('David','2019-10-10'), ('Bob','2019-12-31');

বর্তমান তারিখ: 2019-10-08

কোয়েরি: শেষ ৩ মাস (জুলাই-অক্টোবর) اولে, বাকি নাম অনুযায়ী

mysql> SELECT * FROM DemoTable1526
    -> ORDER BY PurchaseDate > CURDATE() - INTERVAL 3 MONTH DESC, CustomerName;

ফলাফল

+--------------+--------------+
| CustomerName | PurchaseDate |
+--------------+--------------+
| Bob          | 2019-12-31   |
| David        | 2019-10-10   |
| Adam         | 2019-06-01   |
| Chris        | 2019-05-24   |
| Sam          | 2019-04-26   |
+--------------+--------------+

ব্যাখ্যা: PurchaseDate > '2019-07-08' এক্সপ্রেশন TRUE (1) হলে উপরে আসে (DESC), FALSE (0) হলে নিচে। TRUE वाले पुनরা CustomerName অনুযায়ী সর্ট হয়।

  1. PostgreSQL-এ MySQL-এর ORDER BY FIELD() অনুকরণ করা

  2. MySQL-এ SUBSTRING_INDEX() দিয়ে কমা-সেপারেটেড সংখ্যার সেটের প্রথম সংখ্যা দিয়ে ORDER BY করা

  3. MySQL-এ প্রথম এবং শেষ সারি বাদ দিয়ে বাকি সারি বের করা

  4. MySQL-এ নির্দিষ্ট মান প্রথমে দেখিয়ে বাকি ডেট অনুযায়ী সর্ট করা