IT무새/Database

[MySQL] 쿼리 조건 | WHERE Clause

코딩무새 2025. 2. 1. 02:49

껄껄껄

코딩무새입니다.

 

 

MySQL의 WHERE 구문입니다.

포스팅하려니 머리가 아프군요.

하지만 포스팅합니다.

 

WHERE 절이란?

MySQL에서 WHERE 절은 특정 조건을 만족하는 행만 선택하는 데 사용되지요.

SELECT, UPDATE, DELETE 문과 함께 사용하여 원하는 데이터를 필터링할 수 있습니다.

조건을 지정하는 방법이 너무도 많은데요.

비교 연산자, 논리 연산자, IN, LIKE 등 여러 방법이 있습니다.

 

기본 문법

SELECT로 예시를 들어봅니다.

SELECT - FROM 이후 WHERE 다음 원하는 조건을 추가합니다.

SELECT {COLUMN1}, {COLUMN2}
FROM {TABLE_NAME}
WHERE {CONDITION};

 

 

예제 쿼리를  만들어 보았는데요.

생성일이 1/20일 지난 데이터를 찾는 쿼리입니다.

SELECT *
FROM users
WHERE created_at >= '2025-01-20';

 

비교 연산자

연산자 설명
= 같은 값 id = 1
!= or <> 다른 값 id != 1
> 초과 id  > 5
< 미만 id < 5
>= 이상 id >= 5
<= 이하 id <= 5

 

id 5를 제외한 데이터를 조회하는 예제 쿼리입니다.

SELECT *
FROM users
WHERE id <> 5;
+----+----------+--------------------+--------------------------------------------------------------------+---------------------+---------------------+
| id | username | email              | password_hash                                                      | created_at          | updated_at          |
+----+----------+--------------------+--------------------------------------------------------------------+---------------------+---------------------+
|  1 | parrot   | parrot@example.com | 3e99b088cbb5b91343516d584699034188b50394005dd5016719378ee9c725e1   | 2025-01-16 20:30:30 | 2025-01-16 20:30:30 |
|  2 | test1    | test1@example.com  | ecd71870d1963316a97e3ac3408c9835ad8cf0f3c1bc703527c30265534f75ae   | 2025-01-16 20:39:50 | 2025-01-16 20:39:50 |
|  3 | test2    | test2@example.com  | 50e49efde4e37d84b97b14ac4f7d03ba956f1413f7367090baeabac67bf69704   | 2025-01-16 20:39:50 | 2025-01-16 20:39:50 |
|  4 | test3    | test3@example.com  | 2d0eadfa85a4fb22cfccb3fb3a731a3a74524f7177f4259d920a5bbcffefc040   | 2025-01-16 20:39:50 | 2025-01-16 20:39:50 |
|  6 | bear     | bear@jwt.com       | bear123de4e37d84b97b14ac4f7d03ba956f1413f7367090baeabac67bf69704   | 2025-01-21 00:43:59 | 2025-01-24 00:44:16 |
|  7 | zip      | zip@al.com         | zasqwqcfvwryhjnd84b97b14ac4f7d03ba956f1413f7367090baeabac67bf69704 | 2025-01-24 00:44:35 | 2025-01-24 00:44:43 |
+----+----------+--------------------+--------------------------------------------------------------------+---------------------+---------------------+
6 rows in set (0.00 sec)

 

 

논리 연산자

AND

조건을 중첩하여 연산시켜 모든 조건이 만족하는 데이터를 가져옵니다.

아래 쿼리를 볼까요?!

id 2 초과 + 5 미만의 조건을 AND 연산자를 사용하여 데이터를 가져왔습니다.

SELECT id, username, email
FROM users
WHERE id > 2 AND id < 5;
+----+----------+-------------------+
| id | username | email             |
+----+----------+-------------------+
|  3 | test2    | test2@example.com |
|  4 | test3    | test3@example.com |
+----+----------+-------------------+
2 rows in set (0.00 sec)

 

OR

여러 조건 중 하나라도 만족하면 데이터를 가져옵니다.

OR 연산자를 사용하여 id 5 초과하거나 4 미만의 데이터를 가져왔습니다.

SELECT id, username, email
FROM users
WHERE id < 4 OR id > 5;
+----+----------+--------------------+
| id | username | email              |
+----+----------+--------------------+
|  1 | parrot   | parrot@example.com |
|  2 | test1    | test1@example.com  |
|  3 | test2    | test2@example.com  |
|  6 | bear     | bear@jwt.com       |
|  7 | zip      | zip@al.com         |
+----+----------+--------------------+
5 rows in set (0.00 sec)

 

NOT

특정 조건의 반대되는 조건으로 데이터를 가져옵니다.

아래 쿼리는 username이 'parrot'이 아닌 데이터를 가져오는 쿼리입니다.

SELECT id, username, email
FROM users
WHERE NOT username = 'parrot';
+----+----------+-------------------+
| id | username | email             |
+----+----------+-------------------+
|  2 | test1    | test1@example.com |
|  3 | test2    | test2@example.com |
|  4 | test3    | test3@example.com |
|  5 | apt      | apt@rose.com      |
|  6 | bear     | bear@jwt.com      |
|  7 | zip      | zip@al.com        |
+----+----------+-------------------+
6 rows in set (0.00 sec)

 

그 외 조건

기본적인 조건 외에 다른 방법을 보여드리겠습니다.

여기선  간단히 설명드려볼게요.

IN은 조건 값이 여러 값 중 일치하는 데이터를 가져옵니다.

LIKE는 부분 검색 조건이에요.

SELECT id, username
FROM users
WHERE id IN (1,2,3);
+----+----------+
| id | username |
+----+----------+
|  1 | parrot   |
|  2 | test1    |
|  3 | test2    |
+----+----------+
3 rows in set (0.00 sec)

SELECT id, username
FROM users
WHERE username LIKE 'test%';
+----+----------+
| id | username |
+----+----------+
|  2 | test1    |
|  3 | test2    |
|  4 | test3    |
+----+----------+
3 rows in set (0.00 sec)

 


 

WHERE 절에 대해서 포스팅해보았습니다.

연산자 관련 내용만 집중적으로 작성했지만, 연산자는 중요합니다.

껄껄껄

'IT무새 > Database' 카테고리의 다른 글

[MySQL] IN 연산자  (3) 2025.02.06
[MySQL] Mysql에 CSV 데이터 Import | HeidiSQL  (2) 2025.02.01
[MySQL] 데이터 정렬 | ORDER BY  (1) 2025.01.24
[MySQL] 테이블 조회 | SELECT  (4) 2025.01.16
[MySQL] 데이터 삽입 | INSERT INTO  (1) 2025.01.16