MySQL-এ সর্বোচ্চ ID বা মান ওয়ালা রো বের করার সেরা পদ্ধতি
MySQL-এ কোনো কলামের সর্বোচ্চ মান ওয়ালা রো বের করতে ORDER BY column DESC LIMIT 1 ব্যবহার করা সবচেয়ে সহজ এবং কার্যকর পদ্ধতি। এটি MAX() দিয়ে মান বের করে আবার জয়েন করার চেয়ে সহজ।
উদাহরণ
টেবিল তৈরি:
CREATE TABLE DemoTable (Id INT, FirstName VARCHAR(50));
INSERT INTO DemoTable VALUES (100, 'Chris'), (110, 'Robert'), (120, 'Mike'), (115, 'Bob');
সর্বোচ্চ ID ওয়ালা রো
SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 1;
আউটপুট:
+------+-----------+
| Id | FirstName |
+------+-----------+
| 120 | Mike |
+------+-----------+
তুলনা: MAX() সাবকোয়ারি vs ORDER BY LIMIT
| পদ্ধতি | কোয়ারি | পারফরম্যান্স |
|---|---|---|
| ORDER BY DESC LIMIT 1 | SELECT * FROM t ORDER BY id DESC LIMIT 1 | ইন্ডেক্স থাকলে খুব দ্রুত (ইন্ডেক্স স্ক্যান ব্যাকওয়ার্ড) |
| MAX() সাবকোয়ারি | SELECT * FROM t WHERE id = (SELECT MAX(id) FROM t) | দুইবার স্ক্যান, কিছুটা ধীর |
সতর্কতা
- যদি একাধিক রোতে একই সর্বোচ্চ মান থাকে,
LIMIT 1শুধু একটি রিটার্ন করবে (নondeterministic)। - সব রো পেতে হলে:
WHERE Id = (SELECT MAX(Id) FROM DemoTable)।