MySQL : in 연산자와 비교연산자 " ="

Zero·2022년 4월 8일
0

MySQL

목록 보기
2/5
post-thumbnail

SQL 연습 가능한 사이트

https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial#nobel_Nobel_Laureates

SQL은 이론을 보고 코드를 볼 줄 아는 것도 중요하지만,
실전이 더 중요하다

그래서 'sqlzoo'의 SELECT from Nobel Tutorial 3번 아인슈타인 문제를 풀다가 헷갈리는 개념이 있어 가져와봤다.

문제

Show the year and subject that won 'Albert Einstein' his prize.
('알버트 아인슈타인'이 우승한 년도와 수상부문을 출력하세요)

select yr, subject 
 from nobel
 where winner in 'Albert Einstein';
 
>>Error: Incorrect syntax near 'Albert Einstein'.


문제는 간단했다. 'Albert Einstein'이 있는 행을 찾아 출력하면 되는 것이니까.

그런데 in 연산자를 썼더니 계속 틀리다고 나왔다.
where column name in (value1, value2,...) 가 맞는데 아니어서 당황했었다.

그런데 다시 알아보니,

in 연산자 : 찾고자 하는 값이 복수 일 때
비교연산자 '=' : 두 개의 값이 같은지 확인

비교하고자하는 값이 하나니까 비교연산자 '=' 를 써야했다.

아래는 올바른 연산자를 쓴 것이다.

select yr, subject 
 from nobel
 where winner = 'Albert Einstein';
 
 >>  yr	  subject
    1921  Physics

SQL은 python과 달리 문법이 매우 직관적이나,
비슷한 연산자들이 많아서 헷갈린다.

코드를 많이 짜보면서 연습을 하는 것 말고는 답이 없는 것 같다.

profile
코딩 일기

0개의 댓글