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

MySQL에서 NULL 포함 컬럼 두 개를 CONCAT으로 합칠 때 IFNULL로 안전하게 처리하기

CONCAT()에 NULL이 있으면 결과가 NULL이 됩니다. IFNULL(컬럼, '')로 빈 문자열로 치환하면 안전하게 결합됩니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1793 (
    -> StudentFirstName VARCHAR(20),
    -> StudentLastName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1793 VALUES('John','Smith');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1793 VALUES('Carol',NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1793 VALUES(NULL,'Brown');
Query OK, 1 row affected (0.00 sec)

데이터 조회

mysql> SELECT * FROM DemoTable1793;
+------------------+-----------------+
| StudentFirstName | StudentLastName |
+------------------+-----------------+
| John             | Smith           |
| Carol            | NULL            |
| NULL             | Brown           |
+------------------+-----------------+
3 rows in set (0.00 sec)

NULL 안전 결합

mysql> SELECT CONCAT(IFNULL(StudentFirstName,''), IFNULL(StudentLastName,'')) FROM DemoTable1793;
+----------------------------------------------------------------+
| CONCAT(IFNULL(StudentFirstName,''), IFNULL(StudentLastName,'')) |
+----------------------------------------------------------------+
| JohnSmith                                                      |
| Carol                                                          |
| Brown                                                          |
+----------------------------------------------------------------+
3 rows in set (0.00 sec)

대안: CONCAT_WS('', StudentFirstName, StudentLastName)도 NULL을 자동 건너뛰지만, 구분자가 빈 문자열이면 구분이 안 될 수 있습니다. CONCAT_WS(' ', ...)로 공백 구분 권장. COALESCE(컬럼1, 컬럼2, '')도 사용 가능.

  1. MySQL-এ দুটি কলাম ভাগ করে ফলাফল নতুন কলামে দেখানো

  2. MySQL-এ খালি মান (Empty String) NULL-এ রূপান্তর করা

  3. MySQL-এ SUBSTRING_INDEX() দিয়ে হাইফেন-বিভক্ত স্ট্রিং আলাদা কলামে বির্ভক্ত করা

  4. MySQL-এ দুটি কলামের মোট মান গণনা করা (NULL বাদ দিয়ে)