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

MySQL-এ মাস এবং বছরের শর্তসাপেক্ষে ডেটা ফিল্টার করা

MySQL-এ আলাদা আলাদা কলামে থাকা মাস (Month) এবং বছর (Year) এর কম্বিনেশন দিয়ে শর্তসাপেক্ষে ডেটা ফিল্টার করতে WHERE ক্লজে OR অপারেটর ব্যবহার করা হয়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> MonthNumber INT,
    -> YearNumber INT
    -> );
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(11, 2018);
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(3, 2019);
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(12, 2018);
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(1, 2019);
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(12, 2019);
mysql> INSERT INTO DemoTable(MonthNumber, YearNumber) VALUES(6, 2018);

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

mysql> SELECT * FROM DemoTable;
+----+-------------+------------+
| Id | MonthNumber | YearNumber |
+----+-------------+------------+
|  1 |          11 |       2018 |
|  2 |           3 |       2019 |
|  3 |          12 |       2018 |
|  4 |           1 |       2019 |
|  5 |          12 |       2019 |
|  6 |           6 |       2018 |
+----+------------+------------+

শর্ত: (মাস >= 11 AND বছর = 2019) OR (মাস <= 11 AND বছর = 2018)

mysql> SELECT Id, MonthNumber, YearNumber 
    -> FROM DemoTable 
    -> WHERE (MonthNumber >= 11 AND YearNumber = 2019) 
    ->    OR (MonthNumber <= 11 AND YearNumber = 2018);

ফলাফল

+----+-------------+------------+
| Id | MonthNumber | YearNumber |
+----+-------------+------------+
|  1 |          11 |       2018 |
|  5 |          12 |       2019 |
|  6 |           6 |       2018 |
+----+-------------+------------+

ব্যাখ্যা:

  • Id=1: Month=11 (>=11), Year=2018 → ২য় শর্ত মেনে (Month<=11 AND Year=2018)
  • Id=5: Month=12 (>=11), Year=2019 → ১ম শর্ত মেনে (Month>=11 AND Year=2019)
  • Id=6: Month=6 (<=11), Year=2018 → ২য় শর্ত মেনে

উন্নত পদ্ধতি: DATE কলাম ব্যবহার

আপনার টেবিলে যদি DATE বা DATETIME কলাম থাকে, তবে এটি সহজ:

SELECT * FROM DemoTable 
WHERE DateColumn >= '2018-11-01' AND DateColumn <= '2019-11-30';

এটি ইনডেক্স ব্যবহার করতে পারে এবং পড়তে সহজ।

  1. MySQL কোয়ারি: সব কলামের দৈর্ঘ্য বের করে একক নতুন কলামে ফলাফল দেখানো

  2. MySQL SELECT কোয়েরি নির্দিষ্ট মাস ও বছরের রেকর্ড রিটার্ন করার জন্য

  3. MySQL-এ শর্ত অনুযায়ী ভিন্ন ফিল্ড আপডেট করা

  4. MySQL-এ নির্দিষ্ট মাস এবং বছরের ভিত্তিতে রেকর্ড ফিল্টার করা