Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 두 개 이상의 지정된 값이 포함된 행 개수를 구하는 방법

MySQL에서 특정 열들 중 두 개 이상의 지정된 값이 동시에 나타나는 행의 개수를 구하려면, WHERE 절에서 IN 연산자와 AND 조건을 조합하면 됩니다. 먼저 예제용 샘플 테이블을 만들어 보겠습니다.

1. 샘플 테이블 생성

mysql> create table specifiedValuesDemo
-> (
-> Value int,
-> Value2 int,
-> Value3 int
-> );
Query OK, 0 rows affected (0.60 sec)

2. 테스트 데이터 삽입

다음은 INSERT 명령을 사용해 테이블에 레코드를 추가하는 쿼리입니다.

mysql> insert into specifiedValuesDemo values(10,15,20);
Query OK, 1 row affected (0.17 sec)

mysql> insert into specifiedValuesDemo values(40,10,20);
Query OK, 1 row affected (0.16 sec)

mysql> insert into specifiedValuesDemo values(80,20,1000);
Query OK, 1 row affected (0.12 sec)

3. 저장된 데이터 확인

SELECT 명령으로 테이블에 저장된 전체 레코드를 조회해 보겠습니다.

mysql> select *from specifiedValuesDemo;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------+--------+--------+
| Value | Value2 | Value3 |
+-------+--------+--------+
| 10 | 15 | 20 |
| 40 | 10 | 20 |
| 80 | 20 | 1000 |
+-------+--------+--------+
3 rows in set (0.00 sec)

4. 두 개 이상의 지정된 값이 포함된 행 개수 구하기

이제 값 1020이 각각 세 개의 열(Value, Value2, Value3) 중 하나라도 포함되어 있는 행의 개수를 구해 보겠습니다. 핵심은 IN 연산자를 여러 열에 적용하고 AND로 연결하는 것입니다.

mysql> select count(*) from specifiedValuesDemo
-> where 10 in(Value,Value2,Value3) and 20 in(Value,Value2,Value3);

실행 결과는 다음과 같습니다.

+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)

결과 분석

결과가 2로 반환된 이유를 살펴보겠습니다.

  • 첫 번째 행 (10, 15, 20): 10과 20이 모두 포함되어 있으므로 조건을 만족합니다.
  • 두 번째 행 (40, 10, 20): 10과 20이 모두 포함되어 있으므로 조건을 만족합니다.
  • 세 번째 행 (80, 20, 1000): 20은 있지만 10이 없으므로 조건에서 제외됩니다.

이처럼 WHERE 10 in(Value,Value2,Value3) AND 20 in(Value,Value2,Value3) 형태의 쿼리를 사용하면, 여러 열 중에서 지정한 값들이 모두 등장하는 행만 정확하게 필터링할 수 있습니다. 이 방식은 열의 개수가 늘어나더라도 동일한 패턴으로 확장할 수 있어 매우 유용합니다.