MySQL 의 WHERE 구문 에서 BETWEEN 과 IN 의 사용 튜 토리 얼

4909 단어 MySQLBETWEENIN
MySQL BETWEEN 사용법
MySQL BETWEEN 문법
BETWEEN 연산 자 는 WHERE 표현 식 에서 두 값 사이 의 데이터 범 위 를 선택 하 는 데 사 용 됩 니 다.BETWEEN 은 AND 와 함께 사용 합 니 다.문법 은 다음 과 같 습 니 다.

WHERE column BETWEEN value1 AND value2
WHERE column NOT BETWEEN value1 AND value2
보통 value 1 은 value 2 보다 작 아야 합 니 다.BETWEEN 앞 에 NOT 연산 자 를 붙 였 을 때 BETWEEN 과 반대 되 는 뜻 으로 이 범위 밖의 값 을 선택 하 는 것 입 니 다.
BETWEEN 실례
uid 가 2 에서 5 사이 의 사용자 데 이 터 를 선택 하 십시오:

SELECT * FROM user WHERE uid BETWEEN 2 AND 5
검색 결 과 를 다음 과 같이 되 돌려 줍 니 다.
20151216160201795.png (639×132)
수치 형식 을 제외 하고 BETWEEN 도 문자열 범 위 를 지원 합 니 다.다음 과 같이 모든 username 이 a 에서 j 사이 에 있 는 사용 자 를 선택 하 십시오(단일 자모 k/K 포함).
SELECT * FROM user WHERE username BETWEEN 'a' AND 'k'
문자 범위 도 한 자 를 지원 하지만 일반적으로 의미 가 없다.
MySQL BETWEEN 경계
거의 모든 데이터 베 이 스 는 BETWEEN...AND 연산 자 를 지원 하지만 서로 다른 데이터 베 이 스 는 BETWEEN..AND 처리 방식 에 차이 가 있 습 니 다.MySQL 에서 BETWEEN 은 uid 가 2 에서 5 사이 에 있 는 사용자 데이터 예 를 선택 하 는 등 value 1 과 value 2 경계 값 을 포함 합 니 다.
일부 데이터 베 이 스 는 value 1 과 value 2 경계 값('and'와 유사)을 포함 하지 않 고,value 1 을 포함 하 며,value 2('=and'와 유사)를 포함 하지 않 는 데이터베이스 도 있다.그래서 BETWEEN...AND 를 사용 할 때 데이터베이스 가 BETWEEN 경계 값 을 어떻게 처리 하 는 지 확인 하 십시오.
MySQL BETWEEN 시간 날짜
BETWEEN AND 는 검색 시간 이나 날짜 대 에 자주 사용 되 는 내용 입 니 다.다음은 흔히 볼 수 있 는 BETWEEN 시간 날짜 예 입 니 다.

// int      ,   2008-08-08 20:00:00   2009-01-01        
SELECT * FROM table WHERE column_time BETWEEN 1218196800 AND 1230739199

// DATE   ,   2008-08-08   2009-01-01        
SELECT * FROM table WHERE column_time BETWEEN '2008-08-08' AND '2009-01-01'

// DATETIME   ,   2008-08-08 20:00:00   2009-01-01        
SELECT * FROM table WHERE column_time BETWEEN '2008-08-08 20:00:00' AND '2008-12-31 23:59:59'
             ,     >=    :
// DATETIME   ,   2008-08-08 20:00:00         
SELECT * FROM table WHERE column_time >= '2008-08-08 20:00:00'

이 를 통 해 알 수 있 듯 이 같은 수요,서로 다른 필드 유형,쓰기 방법 이 다 를 수 있 습 니 다.효율 적 으로 볼 때 int 시간 스탬프 의 형식 효율 이 가장 좋다.
위의 BETWEEN 의 각 예 는 모두 SELECT 조회 이지 만 BETWEEN 은 UPDATE,DELETE 등 WHERE 표현 식 이 적용 되 는 SQL 에 도 사용 할 수 있 습 니 다.
MySQL BETWEEN 데이터 비교
BETWEEN 은 데이터 비교 기능 도 가지 고 있 습 니 다.문법 은 다음 과 같 습 니 다.

expr BETWEEN min AND max
expr 표현 식 의 값 이 min 보다 크 거나 같 거나 max 보다 작 거나 같 을 때 BETWEEN 의 반환 값 은 1 이 고 그렇지 않 으 면 0 으로 돌아 갑 니 다.이 기능 을 사용 하면 표현 식 이나 값 을 판단 할 수 있 습 니 다.그렇지 않 으 면 특정한 구간 에 있 습 니 다.

//    0
SELECT 1 BETWEEN 2 AND 3
//    1
SELECT 'b' BETWEEN 'a' AND 'c'
//       
SELECT 20080808 BETWEEN 20080101 AND 20090101
BETWEEN 과<,<=,>=,>등 연산 자 는 어떤 경우 에 유사 한 기능 을 가지 지만 BETWEEN 연산 등급 이 더욱 높 고 효율 적 으로 한 수 높다.물론 BETWEEN 에 경계 값 문제 가 있어 유연성 이 부족 하기 때문에 상황 에 따라 어떤 연산 자 를 사용 하 는 지 구체 적 으로 대처 해 야 한다.
MySQL IN 사용법
MySQL IN 문법
IN 연산 자 는 WHERE 표현 식 에 사 용 됩 니 다.목록 항목 형식 으로 여러 선택 을 지원 합 니 다.문법 은 다음 과 같 습 니 다.

WHERE column IN (value1,value2,...)
WHERE column NOT IN (value1,value2,...)
IN 앞 에 NOT 연산 자 를 추가 하면 IN 과 반대 되 는 뜻 으로 목록 항목 에서 선택 하지 않 습 니 다.
IN 사용 실례
uid 를 2,3,5 로 선택 한 사용자 데이터:

SELECT * FROM user WHERE uid IN (2,3,5)
검색 결 과 를 다음 과 같이 되 돌려 줍 니 다.
20151216160410446.png (638×104)
IN 하위 검색
더 많은 경우,IN 목록 항목 의 값 은 명확 하지 않 으 며,하위 검색 을 통 해 얻 을 수 있 습 니 다:
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
이 SQL 예 에서 우 리 는 모든 상태 가 0 인 사용자(금 지 될 수 있 음)를 찾 아 낸 모든 글 을 실현 했다.우선 하나의 조 회 를 통 해 모든 status=0 의 사용 자 를 얻 을 수 있 습 니 다.

SELECT uid FROM user WHERE status=0
그리고 검색 결 과 를 IN 의 목록 항목 으로 하여 최종 검색 결 과 를 실현 합 니 다.하위 검색 에서 되 돌아 오 는 결 과 는 필드 목록 항목 이 어야 합 니 다.
IN 연산 자 보충 설명
IN 목록 항목 은 숫자 뿐만 아니 라 문자,시간,날짜 등 도 지원 하 며,column 형식 과 일치 하지 않 고 다양한 유형의 데이터 항목 을 혼합 하여 배열 할 수 있 습 니 다.

SELECT * FROM user WHERE uid IN(1,2,'3','c')
하나의 IN 은 한 필드 만 비교 할 수 있 습 니 다.더 많은 필드 를 지정 하려 면 AND 또는 OR 논리 연산 자 를 사용 할 수 있 습 니 다.
SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','5idev')
AND 또는 OR 논리 연산 자 를 사용 하면 IN 은 LIKE,>=,=등 연산 자 와 함께 사용 할 수 있다.
IN 연산 자의 효율 에 관 한 문제
만약 IN 의 목록 항목 이 확실 하 다 면,여러 OR 로 대체 할 수 있 습 니 다.

SELECT * FROM user WHERE uid IN (2,3,5)
//    :
SELECT * FROM user WHERE (uid=2 OR aid=3 OR aid=5)
일반적으로 색인 필드 를 조작 할 경우 OR 를 사용 하 는 효율 이 IN 보다 높 지만 목록 항목 이 불확실 할 때(하위 조회 가 필요 할 경우)IN 연산 자 를 사용 해 야 한다 고 생각 합 니 다.또한 하위 조회 표 데이터 가 주 조회 보다 적 을 때 도 IN 연산 자 를 적용 한다.

좋은 웹페이지 즐겨찾기