MySQL의 IF 문
이 튜토리얼에서는 MySQL에서 IF
문을 사용하는 방법을 배우는 것을 목표로 합니다.
MySQL에서 IF
문의 구문은 SELECT IF(condition, result_when_true, result_when_false) AS [col_name]
으로 지정할 수 있습니다.
특히 IF
문에서 조건은 평가해야 하는 프로그래머가 정의한 기준입니다.
고려할 열이 하나 이상 포함될 수 있습니다. 예를 들어 열의 특정 값이 200보다 큰지 확인하기 위해 name_of_column > 100인 경우 조건을 작성할 수 있습니다.
result_when_true
값은 조건이 true로 평가되는 경우 해당 조건에 대해 표시하려는 출력 값을 나타냅니다. 반면 result_when_false
값은 조건이 거짓으로 계산될 때 표시되는 출력 값을 나타냅니다.
예를 들어 이 문장에 대해 더 자세히 알아보도록 합시다.
그러나 시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details
테이블을 만듭니다.
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
위의 쿼리는 학생의 이름과 성이 있는 행이 있는 테이블을 만듭니다. 데이터의 항목을 보려면 다음 코드를 사용합니다.
SELECT * FROM student_details;
앞서 언급한 코드는 다음과 같은 출력을 제공합니다.
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
이제 stu_id
가 3보다 큰 경우 학생들의 이름과 함께 Yes
를 인쇄하는 것을 목표로 합시다. 그렇지 않으면 high_stu_id
라는 별도의 열에 No
를 인쇄합니다.
MySQL의 IF
문
위의 구문에서 볼 수 있듯이 MySQL의 IF
문에는 조건이 필요합니다. 이것은 CASE
문과 유사하게 작동합니다.
MySQL에서 원하는 결과를 얻기 위해 다음 프로그램을 사용할 수 있습니다.
SELECT stu_firstName, IF(stu_id>3,"yes","no") AS high_stu_id
FROM student_details;
앞서 언급한 코드는 각 학생의 이름과 high_stu_id
라는 새 열을 가져옵니다.
이 결과 열은 학생의 stu_id
가 3보다 크면 Yes
값을 갖습니다. 그렇지 않고 stu_id
가 3보다 작으면 No
값이 인쇄됩니다.
위 코드의 출력은 다음과 같이 시각화할 수 있습니다.
stu_firstName high_stu_id
Preet no
Rich no
Veron no
Geo yes
Hash yes
Sachin yes
David yes
마찬가지로 IF
문을 사용하여 데이터를 활용하고 요구 사항을 충족할 수 있습니다. IF
문의 대안은 MySQL의 CASE
문입니다.
따라서 이 튜토리얼의 도움으로 이제 MySQL에서 IF
문을 성공적으로 구현할 수 있습니다.