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

MySQL-এ সর্বোচ্চ আপভোট (upvote) পাওয়া ইমেজ পাথ বের করা (MAX + SUBQUERY)

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 কলামে থাকলে খুব দ্রুত
  1. MySQL-এ IS NULL ব্যবহার করে NULL মানযুক্ত রেকর্ড বের করা

  2. MySQL SELECT 1 ব্যবহার করে ভ্যালু এক্সিস্ট করে কিনা চেক করার পদ্ধতি

  3. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  4. MySQL-এ নির্দিষ্ট মান 가진 কলামের সংখ্যা গণনা করা