MySQL의 WHERE 절에는 단순한 컬럼 값뿐만 아니라 산술 연산이 포함된 전체 표현식(expression)도 사용할 수 있습니다. 즉, WHERE 조건 안에서 컬럼 값에 연산을 수행한 결과를 기준으로 데이터를 필터링할 수 있습니다.
예제를 통해 실제 동작 방식을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1406 -> ( -> Value int -> ); Query OK, 0 rows affected (0.47 sec)
2. 레코드 삽입하기
INSERT 문을 사용해 테이블에 샘플 데이터를 입력합니다.
mysql> insert into DemoTable1406 values(10); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1406 values(50); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable1406 values(40); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable1406 values(30); Query OK, 1 row affected (0.11 sec)
3. 전체 레코드 조회하기
SELECT 문으로 테이블에 저장된 모든 데이터를 확인합니다.
mysql> select * from DemoTable1406;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-------+ | Value | +-------+ | 10 | | 50 | | 40 | | 30 | +-------+ 4 rows in set (0.00 sec)
4. WHERE 절에서 전체 표현식 사용하기
이제 WHERE 절에 Value+10=40이라는 전체 표현식을 적용해 보겠습니다. 이 조건은 Value 값에 10을 더한 결과가 40이 되는 행, 즉 Value가 30인 행만 반환합니다.
mysql> select Value+10 as ExpectedValue -> from DemoTable1406 -> where Value+10=40;
실행 결과는 다음과 같습니다.
+---------------+ | ExpectedValue | +---------------+ | 40 | +---------------+ 1 row in set (0.00 sec)
결과 해석
테이블의 Value 값 중 30에 10을 더하면 40이 되므로, 해당 조건을 만족하는 유일한 행이 선택되었습니다. SELECT 절의 별칭(alias)인 ExpectedValue를 통해 연산된 결과(40)가 출력되는 것도 확인할 수 있습니다.
이처럼 MySQL에서는 WHERE 절 내에서 산술 연산을 포함한 전체 표현식을 자유롭게 사용할 수 있으며, 이를 활용하면 보다 유연하고 다양한 조건 검색이 가능합니다.