MySQL 연산자

비교 연산자

연산자설명예시
=같음WHERE age = 25
!= 또는 <>같지 않음WHERE age != 25
<작음WHERE age < 25
>WHERE age > 25
<=작거나 같음WHERE age <= 25
>=크거나 같음WHERE age >= 25
IS NULLNULL 값 확인WHERE email IS NULL
IS NOT NULLNULL이 아닌 값 확인WHERE email IS NOT NULL
BETWEEN ... AND ...범위 내 값 확인 (양쪽 포함)WHERE age BETWEEN 20 AND 30
IN (...)목록에 포함된 값 확인WHERE status IN ('active', 'pending')
NOT IN (...)목록에 포함되지 않은 값 확인WHERE status NOT IN ('deleted')
LIKE패턴 매칭 (부분 일치)WHERE name LIKE '김%'
NOT LIKE패턴 매칭 실패WHERE name NOT LIKE '김%'
REGEXP 또는 RLIKE정규식 매칭WHERE email REGEXP '^[a-z]+@'

LIKE 패턴

  • %: 0개 이상의 문자 (예: '김%' → '김'으로 시작)
  • _: 정확히 1개의 문자 (예: '김_' → '김' + 1글자)

논리 연산자

연산자설명예시
AND 또는 &&모든 조건이 참이어야 함WHERE age> 20 ANDstatus = 'active'
OR 또는 ||하나 이상의 조건이 참이면 됨WHERE status= 'active' ORstatus = 'pending'
NOT 또는 !조건을 반전WHERE NOT status = 'deleted'
XOR하나만 참이어야 함 (둘 다 참이면 거짓)WHERE age> 20 XORstatus = 'active'

우선순위: NOT > AND > OR > XOR

NULL 비교 주의사항

= 연산자로는 NULL을 비교할 수 없고, IS NULL 또는 IS NOT NULL을 사용해야 한다.

-- 잘못된 예시 (항상 NULL 반환)
SELECT * FROM `users` WHERE `email` = NULL;

-- 올바른 예시
SELECT * FROM `users` WHERE `email` IS NULL;
SELECT * FROM `users` WHERE `email` IS NOT NULL;