데이터베이스 쿼리에는 여러 기준에 따라 레코드를 필터링해야 하는 경우가 많습니다. 별도의 WHERE
절이 일반적이지만 동일한 열을 대상으로 하는 여러 기준을 효율적으로 처리하려면 다른 전략이 필요합니다. 이 가이드에서는 열이 지정된 여러 값과 일치하는 레코드를 선택하는 효과적인 방법을 살펴봅니다.
방법 1: GROUP BY
및 HAVING COUNT()
이 접근 방식은 대상 열(예: contact_id
)을 기준으로 레코드를 그룹화하고 일치하는 기준을 계산합니다. HAVING
절은 개수를 기준으로 그룹을 필터링하여 모든 기준을 충족하는 레코드만 반환되도록 합니다.
<code class="language-sql">SELECT contact_id FROM your_table WHERE flag IN ('Volunteer', 'Uploaded', ...) GROUP BY contact_id HAVING COUNT(*) = 2 -- Adjust to match the number of values in the IN list</code>
방법 2: 조인 사용
대안은 조인을 사용하여 공유 열(contact_id
)을 기반으로 레코드를 연결합니다. 각 조인은 특정 기준을 나타냅니다. 모든 조인 조건을 만족하는 레코드만 최종 결과에 포함됩니다.
<code class="language-sql">SELECT T1.contact_id FROM your_table T1 JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded' -- Add more joins as needed for additional criteria WHERE T1.flag = 'Volunteer'</code>
성능 최적화
최적의 방법은 기준 수와 데이터 세트 크기에 따라 다릅니다. 다양한 기준과 대규모 데이터 세트의 경우 GROUP BY
접근 방식이 더 빠른 경우가 많습니다. 반대로, 더 적은 기준과 더 작은 데이터 세트를 사용하면 조인 방법이 더 효율적일 수 있습니다. 두 가지 방법 모두의 성능을 향상하려면 데이터베이스 인덱싱을 고려하세요.
위 내용은 동일한 열에서 여러 기준과 일치하는 레코드를 효율적으로 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!