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

MySQL-এ ভিন্ন রোতে ভিন্ন শর্ত পূরণ করে মান সিলেক্ট করা

ভিন্ন রোতে ভিন্ন শর্ত পূরণ করে মান সিলেক্ট করতে IN() এবং GROUP BY ব্যবহার করতে পারেন। সিনট্যাক্স:

SELECT yourColumnName1 FROM yourTableName WHERE yourColumnName2 IN(value1, value2, ... N) GROUP BY yourColumnName1 HAVING COUNT(DISTINCT yourColumnName2) = conditionValue;

সিনট্যাক্স বুঝতে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DifferentRows (
    -> FirstRow INT,
    -> SecondRow INT
    -> ); Query OK, 0 rows affected (0.72 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:

mysql> INSERT INTO DifferentRows VALUES(10,10); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DifferentRows VALUES(10,100); Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DifferentRows VALUES(10,300); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DifferentRows VALUES(20,100); Query OK, 1 row affected (0.18 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখি:

mysql> SELECT * FROM DifferentRows;

আউটপুট:

+----------+-----------+
| FirstRow | SecondRow |
+----------+-----------+
|       10 |        10 |
|       10 |       100 |
|       10 |       300 |
|       20 |       100 |
+----------+-----------+
4 rows in set (0.00 sec)

ভিন্ন রোতে ভিন্ন শর্ত পূরণ করে মান সিলেক্ট করার ক্যোয়ারি। এটি সেই সব ডISTINCT FirstRow রেকর্ড দেবে যাদের SecondRow 10, 100, 300 আছে:

mysql> SELECT FirstRow FROM DifferentRows
    -> WHERE SecondRow IN(10,100,300)
    -> GROUP BY FirstRow
    -> HAVING COUNT(DISTINCT SecondRow) = 3;

আউটপুট:

+----------+
| FirstRow |
+----------+
|       10 |
+----------+
1 row in set (0.00 sec)
  1. MySQL-এ একটি টেবিলের সারি যেটি অন্য টেবিলে নেই সেগুলো কীভাবে বের করবেন?

  2. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  3. MySQL에서 UNION ALL로 두 컬럼의 값을 하나의 컬럼으로 합쳐 조회하기

  4. MySQL-এ CASE WHEN এবং GROUP_CONCAT ব্যবহার করে শর্তসাপেক্ষে কলাম মান কনক্যাটেনেট করা