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 অনুযায়ী সাজায়।