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

MySQL-এ GROUP BY ব্যবহার করে শুধু নন-এমপ্টি (non-empty) মান বের করা

যদি একই আইডির জন্য একাধিক সারি থাকে এবং আপনি চান শুধু প্রথম নন-নাল ও নন-এমপ্টি মেসেজটি বের করা, তবে MIN() ফাংশন এবং WHERE ক্লজ ব্যবহার করে করা যায়।

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

mysql> CREATE TABLE DemoTable (
    -> Id VARCHAR(100),
    -> Message VARCHAR(200)
    -> );
Query OK, 0 rows affected (1.17 sec)

mysql> INSERT INTO DemoTable VALUES('1', '');
mysql> INSERT INTO DemoTable VALUES('1', 'Hi');
mysql> INSERT INTO DemoTable VALUES('2', 'Hello');
mysql> INSERT INTO DemoTable VALUES('3', 'Awesome');
mysql> INSERT INTO DemoTable VALUES('3', 'Good Morning');
mysql> INSERT INTO DemoTable VALUES('2', NULL);

সকল রেকর্ড

+------+--------------+
| Id   | Message      |
+------+--------------+
| 1    |              |
| 1    | Hi           |
| 2    | Hello        |
| 3    | Awesome      |
| 3    | Good Morning |
| 2    | NULL         |
+------+--------------+

প্রথম নন-এমপ্টি মেসেজ বের করার কোয়েরি

mysql> SELECT Id, MIN(Message) FROM DemoTable
    -> WHERE Message IS NOT NULL AND LENGTH(Message) > 0
    -> GROUP BY Id;

আউটপুট:

+------+--------------+
| Id   | MIN(Message) |
+------+--------------+
| 1    | Hi           |
| 2    | Hello        |
| 3    | Awesome      |
+------+--------------+

ব্যাখ্যা: WHERE ক্লজে NULL এবং খালি স্ট্রিং ফিল্টার আউট করা হয়েছে। MIN() অ্যালফাবেটিক্যালি প্রথম মান বের করে (এখানে 'Awesome' < 'Good Morning')।

  1. MySQL-এ নির্দিষ্ট ভ্যালু প্রথমে দেখিয়ে বাকি অর্ডার করানো (ORDER BY ট্রিক)

  2. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  3. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

  4. MySQL-এ GROUP BY HAVING ব্যবহার করে ডুপ্লিকেট কলাম মান বের করা