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

MySQL-এ নির্দিষ্ট ভ্যালু থেকে শুরু করে ORDER BY করা

MySQL-এ ORDER BY ক্লজে বুলিয়ান এক্সপ্রেশন ব্যবহার করে নির্দিষ্ট ভ্যালু (যেমন ClientId = 5) থেকে শুরু করে সাজানো যায়, তারপর স্বাভাবিক ক্রমে।

টেবিল ও ডেটা

mysql> CREATE TABLE DemoTable (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(30)
);
mysql> INSERT INTO DemoTable(ClientName) VALUES 
('John'), ('Chris'), ('Robert'), ('David'), ('Bob'), ('Carol'), ('Sam'), ('Mike');

সকল ডেটা

+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 1        | John       |
| 2        | Chris      |
| 3        | Robert     |
| 4        | David      |
| 5        | Bob        |
| 6        | Carol      |
| 7        | Sam        |
| 8        | Mike       |
+----------+------------+

ClientId 5 থেকে শুরু করে অর্ডার (৫,৬,৭,৮,১,২,৩,৪)

mysql> SELECT * FROM DemoTable ORDER BY ClientId < 5, ClientId;

ফলাফল

+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 5        | Bob        |
| 6        | Carol      |
| 7        | Sam        |
| 8        | Mike       |
| 1        | John       |
| 2        | Chris      |
| 3        | Robert     |
| 4        | David      |
+----------+------------+

ব্যাখ্যা: ClientId < 5 এক্সপ্রেশনটি ClientId ৫ বা তার বেশি হলে ১ (সত্য), ৫-এর কম হলে ০ (মিথ্যা) রিটার্ন করে। ORDER BY ... ASC (ডিফল্ট) ০ গুলো (১-৪) পরে, ১ গুলো (৫-৮) আগে আনে। একই গ্রুপের ভিতরে ClientId অনুযায়ী সাজায়।

  1. MySQL-এ ভিন্ন মানদ्वয়ের মধ্যে থেকে একটি মান ফেচ করা

  2. MySQL-এ LENGTH ও REPLACE ব্যবহার করে কমা (,) গণনা করা

  3. MySQL-এ CONCAT() এবং JOIN ব্যবহার করে আলাদা টেবিলের কলাম সংযুক্ত করুন

  4. MySQL에서 타임스탬프 값으로부터 날짜만 추출하기