복잡한 WHERE 절로 작업할 때 필드 또는 필드 집합을 값 목록과 비교해야 하는 경우가 많습니다. 튜플을 비교하는 경우 여러 가지 옵션을 사용할 수 있습니다.
하드코딩된 값이 있는 IN 절
한 가지 접근 방식은 IN 절 내에 하드코딩된 값을 사용하는 것입니다. 그러나 각 레코드에는 문자열 연결 및 변환이 필요하므로 대규모 테이블에서는 비효율적일 수 있습니다.
VALUE 절 사용(표준 SQL)
표준에 대한 보다 효율적인 옵션 SQL-92 데이터베이스는 IN 연산자 내에서 VALUES 절을 사용합니다. 여기에는 튜플 목록을 괄호로 묶고 VALUES 키워드를 추가하는 작업이 포함됩니다.
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
데이터베이스 호환성
이 구문은 모든 SQL에서 지원되지 않는다는 점에 유의하는 것이 중요합니다. 제품. SQL Server 2022부터 이 기능은 계획되지 않은 것으로 간주됩니다. 그러나 PostgreSQL과 SQLite는 이 구문을 지원합니다.
위 내용은 SQL의 `IN` 절에서 튜플을 효율적으로 비교할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!