2 augusti, 2019 admin

mysql exists 예제

첫 번째 예제에서 언급한 EXISTS 연산자사용 쿼리보다 약간 빠릅니다. 아래 EXIST 연산자를 사용하는 쿼리의 성능을 참조하십시오 : 마지막 예 (이중 부정사용)는 다음과 같이 해석 될 수 있습니다 :Store `si`는 모든 도시에 있는 경우이 상점의 경우 우리는 `si`가 두 번째 선택 통계를 exist.so 않는 도시 cj를 찾을 수 없습니다. ement SELECT * 존재하지 않는 도시에서 t2가 NULL 값만 있는 행을 포함하는 경우, 이전 예제의 경우, null 값만 있는 행을 포함하는 경우 exists 조건은 TRUE입니다. [NOT] EXISTS 하위 쿼리에는 거의 항상 상관 관계가 포함되어 있기 때문에 실제로는 거의 불가능합니다. 다음은 몇 가지 보다 현실적인 예입니다: NOT EXISTS 테이블이 비어 있으면 항상 false를 반환합니다. 예:테이블 상태 만들기(state_id int auto_int null, state_code char(2) null이 아님, state_name varchar(100) null이 아님, UNIQUE(state_code), PRIMARY KEY(state_id)));mysql> 존재하지 않는 상태에서 100개 선택(주 에서 1개 선택) _id=1); 빈 집합(0.00초) 고객 테이블에 나타나는 customerNumber가 주문 테이블에 있는 경우 하위 쿼리는 첫 번째 일치 행을 반환합니다. 결과적으로 EXISTS 연산자는 true를 반환하고 주문 테이블 검색을 중지합니다. 그렇지 않으면 하위 쿼리는 행을 반환하지 않고 EXISTS 연산자는 false를 반환합니다. 하위 쿼리가 TRUE를 반환하고 존재하지 않음이 false를 반환하기 때문에 쿼리가 빈 레코드를 반환하는 것을 볼 수 있습니다. 더 나은 이해를 위해 한 가지 예를 더 보여 드리겠습니다. 팁: 이 예제로 이동하기 전에 SQL Subquery 문서를 참조하여 하위 쿼리 디자인 및 쿼리 구문 분석방법을 이해하는 것이 좋습니다. 마지막 예제는 이중 중첩된 NOT EXISTS 쿼리입니다. 즉, NOT EXISTS 절 내에 NOT EXISTS 절이 있습니다.

공식적으로, 그것은 질문에 대답 ”도시는 상점에없는 상점이 존재합니까”? 그러나 중첩 된 NOT EXISTS가 질문에 대답한다고 말하는 것이 더 쉽습니다 ”모든 y에 대한 x TRUE입니까?” 하위 쿼리가 모든 행을 반환하는 경우 EXISTS 하위 쿼리는 TRUE이고 EXISTS 하위 쿼리는 FALSE입니다. 예를 들어 MS SQL 배경 (내 잘못이 아닌 정직함)에서 오고 있으며 대화 형 모드에서 예상대로 `존재`가 작동하지 않는다는 것을 추가하고 싶습니다. 나는 다음과 같은 일을 할 수 있을 것으로 예상 :if 존재 (사용자 이름 = @username 사용자로부터 1을 선택하십시오) 다음 뭔가를 할 수 있습니다;end if;하지만 대화 형 모드에서, 이것은 구문 오류를 생성합니다.