MySQL-এ সাবকোয়েরি ব্যবহার করে সর্বোচ্চ আপভোট মান 가진 রোের অন্য কলাম (যেমন ইমেজ পাথ) বের করা যায়।
উদাহরণ
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ImagePath VARCHAR(100),
UpvoteValue INT
);
Query OK, 0 rows affected (0.72 sec)
mysql> INSERT INTO DemoTable (ImagePath, UpvoteValue) VALUES
('Image1.jpeg', 90), ('Image2.jpeg', 10), ('Image3.jpeg', 120), ('Image4.jpeg', 114);
Query OK, 4 rows affected
সব রেকর্ড
mysql> SELECT * FROM DemoTable;
+----+-------------+-------------+ | Id | ImagePath | UpvoteValue | +----+-------------+-------------+ | 1 | Image1.jpeg | 90 | | 2 | Image2.jpeg | 10 | | 3 | Image3.jpeg | 120 | <-- সর্বোচ্চ | 4 | Image4.jpeg | 114 | +----+-------------+-------------+
সর্বোচ্চ আপভোটের ইমেজ পাথ
mysql> SELECT ImagePath FROM DemoTable WHERE UpvoteValue IN (SELECT MAX(UpvoteValue) FROM DemoTable);
+-------------+ | ImagePath | +-------------+ | Image3.jpeg | +-------------+
বিকল্প পদ্ধতি (আধুনিক MySQL 8.0+)
-- LIMIT 1 সহ ORDER BY SELECT ImagePath FROM DemoTable ORDER BY UpvoteValue DESC LIMIT 1; -- CTE (Common Table Expression) WITH max_up AS (SELECT MAX(UpvoteValue) AS mv FROM DemoTable) SELECT ImagePath FROM DemoTable JOIN max_up ON UpvoteValue = mv;
নোট
- সাবকোয়েরি পদ্ধতি সব ভার্সনে কাজ করে
- একাধিক রো একই সর্বোচ্চ মানে থাকলে সবগুলো রিটার্ন হবে
- ইনডেক্স
UpvoteValueকলামে থাকলে খুব দ্রুত