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

MySQL-এ GROUP BY HAVING এবং IN() ব্যবহার করে একাধিক শর্ত পূরণকারী সারি বের করা


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

mysql> create table DemoTable1885 ( FirstName varchar(20), Subject varchar(50) ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1885 values('John','MySQL'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1885 values('John','MongoDB'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1885 values('Carol','MySQL'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1885 values('David','Java'); Query OK, 1 row affected (0.00 sec)

সব রেকর্ড

mysql> select * from DemoTable1885;
+-----------+---------+
| FirstName | Subject |
+-----------+---------+
| John      | MySQL   |
| John      | MongoDB |
| Carol     | MySQL   |
| David     | Java    |
+-----------+---------+
4 rows in set (0.00 sec)

MySQL এবং MongoDB দুটোই আছে এমন ইউজার বের করা

mysql> select FirstName from DemoTable1885 where Subject IN('MySQL','MongoDB') group by FirstName having count(*)=2;
+-----------+
| FirstName |
+-----------+
| John      |
+-----------+
1 row in set (0.00 sec)

ব্যাখ্যা: WHERE Subject IN(...) দিয়ে কেবল এই দুটি সাবজেক্টवाले সারি ফিল্টার করা হয়। GROUP BY FirstName দিয়ে গ্রুপ করা হয়। HAVING COUNT(*)=2 মানে দুটি সাবজেক্টই থাকতে হবে। Carol-এর শুধু MySQL আছে, David-এর Java আছে - তাই বাদ পড়েছে।

  1. MySQL-এ SELECT কোয়েরিতে রো নাম্বার (Row Count) যোগ করা ROW_NUMBER() দিয়ে

  2. MySQL-এ UPDATE ... WHERE ব্যবহার করে নির্দিষ্ট সারি ও কলাম আপডেট করুন

  3. MySQL-এ ZEROFILL ব্যবহার করে কলাম মান 앞에 ০০০ যোগ করা

  4. MySQL-এ LIMIT ব্যবহার করে পেজিনেশন (পরের সারি নির্বাচন)