MySQL에서 하나의 쿼리로 여러 열(column)을 동시에 검색해야 하는 경우가 자주 있습니다. 예를 들어 사용자 이름과 이메일 주소를 함께 조회하거나, 두 개 이상의 조건을 만족하는 레코드를 찾아야 할 때가 그렇습니다. 이 글에서는 AND 연산자와 OR 연산자를 활용해 여러 열을 검색하는 방법을 살펴보겠습니다.
사전 준비 사항
이 가이드에서는 'DBNAME'이라는 데이터베이스와 'tableName'이라는 테이블이 이미 생성되어 있다고 가정합니다.
AND 연산자로 여러 열 검색하기
AND 연산자는 모든 조건이 동시에 일치해야만 결과를 반환합니다. 즉, 두 개의 조건을 모두 만족하는 레코드만 조회됩니다.
SELECT colName FROM tableName WHERE my_col LIKE '%param1%' AND another_col LIKE '%param2%';
위 쿼리는 my_col이 'param1'을 포함하고, 동시에 another_col이 'param2'를 포함하는 레코드만 반환합니다. 두 조건 중 하나라도 일치하지 않으면 해당 레코드는 결과에서 제외됩니다.
OR 연산자로 여러 열 검색하기
OR 연산자는 조건 중 하나라도 일치하면 결과를 반환합니다. 더 넓은 범위의 검색 결과를 얻고 싶을 때 유용합니다.
SELECT colName FROM tableName WHERE my_col LIKE '%param1%' OR another_col LIKE '%param2%';
위 쿼리는 my_col이 'param1'을 포함하거나, another_col이 'param2'를 포함하는 모든 레코드를 반환합니다. 두 조건 중 어느 하나만 충족되어도 결과에 포함됩니다.
참고: 여러 열을 하나의 조건으로 결합하기
검색어 하나로 여러 열을 한 번에 확인하고 싶다면 CONCAT 함수를 사용할 수도 있습니다.
SELECT colName FROM tableName WHERE CONCAT(my_col, ' ', another_col) LIKE '%param1%';
이 방식은 두 열의 값을 하나의 문자열로 합친 뒤 검색하므로, 단일 키워드로 폭넓은 검색을 수행할 때 특히 편리합니다.
정리
- AND: 모든 조건이 일치해야 결과 반환 (좁은 검색)
- OR: 조건 중 하나라도 일치하면 결과 반환 (넓은 검색)
- CONCAT: 여러 열을 하나의 문자열로 묶어 단일 키워드 검색 가능
검색 목적에 따라 적절한 연산자를 선택하면 MySQL에서 여러 열을 효율적으로 검색할 수 있습니다.