반응형
프로그램을 작성하다보면, 로직를 제어를 해야하는 순간이 있다.
그럴때마다 고민을 하는데,
비즈니스 로직에서 풀어야 하는 것이 맞을까? 또는 쿼리에서 풀어야 하는 것이 맞을까?
결론만 놓고 본다면 상황을 놓고 봐야 하는 것이 정답이다.
MySql에서 사용하는 제어함수 중 가장 기본적인 함수에 대해서 알아보도록 하자.
IF 함수.
- 사용방법 - IF(expr1, expr2, expr3)
- 가장 대표적인 제어함수.
- 첫 번째 인수(expr1)의 표현식의 따라 참(True)인 경우 두 번째 인수(expr2) 반환하고 거짓(False)일 경우 세 번째 인수(expr3) 반환
docs.
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if
1. 표현식이 참(True)인 경우
SELECT IF(3 > 4, 3, 4);
IF(4 > 3, 3, 4)|
---------------|
3|
2. 표현식이 참(False)인 경우
SELECT IF(3 > 4, 3, 4);
IF(3 > 4, 3, 4)|
---------------|
4|
IFNULL 함수.
- 사용방법 - IFNULL(expr1,expr2)
- 첫 번째 인수값이 NULL이 아니면 첫 번째 인수값 반환하고 NULL이면 두 번째 인수값 전달
docs.
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_ifnull
1. 값이 NULL이 아닌 경우
SELECT IFNULL('null이 아닙니다.', null);
IFNULL('null이 아닙니다.', null)|
--------------------------------|
null이 아닙니다. |
2. 값이 NULL인 경우
SELECT IFNULL(null, 'null입니다.');
IFNULL(null, 'null입니다.')|
---------------------------|
null입니다. |
NULLIF함수.
- 사용방법 - NULLIF(expr1,expr2)
- 첫 번째 인수와 두 번째 인수값을 비교하여 같으면 NULL 전달, 다르면 첫 번째 인수 전달
docs.
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_nullif
1. 값이 같을 경우_1
SELECT NULLIF(1, 1);
NULLIF(null, null)|
------------------|
|
2. 값이 같은 경우_2
SELECT NULLIF(null, null);
NULLIF(null, null)|
------------------|
|
3. 값이 다른 경우
SELECT NULLIF(1, null);
NULLIF(1, null)|
---------------|
1|
반응형
'저장소이야기 > MySql' 카테고리의 다른 글
[MySQL8] MacOS docker 설치 (0) | 2022.07.09 |
---|---|
[MySql] STR_TO_DATE() 날짜형 변환 (0) | 2020.11.02 |
[MySql] DATE_FORMAT() 문자열 변환 (0) | 2020.11.02 |
[MySql] VERSION 조회 (0) | 2020.06.09 |
[MySql] ERROR com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run (0) | 2020.06.09 |
댓글