Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 쿼리에서 값을 연결하고 Null 값도 처리하는 방법은 무엇입니까?

<시간/>

CONCAT() 메서드를 사용하여 값을 연결할 수 있고 IFNULL() 메서드를 사용하여 NULL 값을 처리할 수 있습니다. 구문은 다음과 같습니다.

SELECT
CONCAT('anyStringValue:',IFNULL(yourColumnName, 'anyStringValue’)) AS anyVariableName
FROM yourTableName;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table ConcatValues
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstName varchar(20),
   -> MiddleName varchar(20),
   -> LastName varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.62 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다.

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('John' ,NULL ,'Smith');
Query OK, 1 row affected (0.24 sec)

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('Carol' ,NULL ,'Taylor');
Query OK, 1 row affected (0.16 sec)

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('David' ,NULL ,'Miller');
Query OK, 1 row affected (0.23 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.

mysql> select *from ConcatValues;

다음은 출력입니다.

+----+-----------+------------+----------+
| Id | FirstName | MiddleName | LastName |
+----+-----------+------------+----------+
| 1 | Mary | Elizabeth | Smith |
| 2 | John | NULL | Smith |
| 3 | Carol | NULL | Taylor |
| 4 | David | NULL | Miller |
+----+-----------+------------+----------+
4 rows in set (0.00 sec)

다음은 NULL을 처리하고 값을 연결하는 쿼리입니다.

mysql> select
   -> concat('The middle name is:',IFNULL(MiddleName, 'Not Available')) AS MiddleName
   -> from ConcatValues;

다음은 출력입니다.

+----------------------------------+
| MiddleName                       |
+----------------------------------+
| The middle name is:Elizabeth     |
| The middle name is:Not Available |
| The middle name is:Not Available |
| The middle name is:Not Available |
+----------------------------------+
4 rows in set (0.00 sec)