집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 IN 절에서 튜플 쌍을 효율적으로 쿼리하려면 어떻게 해야 합니까?
SQL IN 절에서 튜플 사용: 문자열 연결의 대안
SQL에서 IN 절을 사용하면 필드를 집합과 비교할 수 있습니다. 가치의. 그러나 여러 값이 포함된 튜플을 처리하는 것은 어려울 수 있습니다.
문제
group_id 및 group_type 필드가 있는 테이블을 고려하고 특정 튜플이 있는 레코드를 쿼리하려고 합니다.
SELECT * FROM mytable WHERE (group_id, group_type) IN (("1234-567", 2), ("4321-765", 3), ("1111-222", 5))
아래와 같이 문자열 연결을 사용하기 위해 제안된 솔루션은 다음과 같습니다. 큰 테이블의 경우 비효율적:
SELECT * FROM mytable WHERE group_id + STR(group_type, 1) IN ("1234-5672", "4321-7653", "1111-2225")
표준 SQL 솔루션
더 효율적인 솔루션은 다음과 함께 IN 절의 튜플에 대해 표준 SQL-92 구문을 사용하는 것입니다. VALUES 키워드:
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
이 구문은 PostgreSQL 및 SQLite.
Microsoft SQL Server 참고
작성 당시(SQL Server 2022) 이 구문은 Microsoft SQL Server에서 지원되지 않습니다.
위 내용은 SQL의 IN 절에서 튜플 쌍을 효율적으로 쿼리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!