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

MySQL-এ সাবকোয়েরি ব্যবহার করে শেষ ৩টি রো এসেন্ডিং অর্ডারে পান

MySQL-এ টেবিলের শেষ N টি রো এসেন্ডিং অর্ডারে (পুরনো থেকে নতুন) পেতে সাবকোয়েরিতে ORDER BY DESC LIMIT N করে, তারপর বাহ্যিক কোয়েরিতে ORDER BY ASC করতে হয়।

সিনট্যাক্স

SELECT * FROM (
    SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT 3
) AS anyAliasName ORDER BY yourColumnName;

উদাহরণ

১. টেবিল তৈরি করুন

mysql> CREATE TABLE DemoTable1579 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20)
    -> );

২. ডেটা ইনসার্ট করুন

mysql> INSERT INTO DemoTable1579(Name) VALUES('Robert'), ('Bob'), ('Chris'), ('Sam'), ('Mike');

৩. সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable1579;

আউটপুট: Id 1-5: Robert, Bob, Chris, Sam, Mike

৪. শেষ ৩টি রো এসেন্ডিং অর্ডারে (Id 3, 4, 5)

mysql> SELECT * FROM (
    -> SELECT * FROM DemoTable1579 ORDER BY Id DESC LIMIT 3
    -> ) t ORDER BY Id;

৫. ফলাফল

+----+-------+
| Id | Name  |
+----+-------+
| 3  | Chris |
| 4  | Sam   |
| 5  | Mike  |
+----+-------+

ব্যাখ্যা:

  • ইনার কোয়েরি: ID 5, 4, 3 (সাম্প্রতিক ৩টি, ডিসেন্ডিং)।
  • আউটার কোয়েরি: সেগুলো আবার ID 3, 4, 5 (এসেন্ডিং) এ সাজায়।
  • এলিয়াস t বাধ্যতামূলক (MySQL-এ ডিরাইভড টেবিলের জন্য)।

বিকল্প (MySQL 8.0+ CTE):

WITH last3 AS (SELECT * FROM DemoTable1579 ORDER BY Id DESC LIMIT 3)
SELECT * FROM last3 ORDER BY Id;
  1. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  2. MySQL-এ শেষ ৫০টি এন্ট্রি থেকে ৫টি র‍্যান্ডম সারি বের করা

  3. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)

  4. MySQL-এ CONCAT_WS ব্যবহার করে শর্তসাপেক্ষ রো সিলেক্ট করা