>  기사  >  데이터 베이스  >  mysql에서 in의 사용법은 무엇입니까

mysql에서 in의 사용법은 무엇입니까

WBOY
WBOY원래의
2021-12-21 17:35:1416817검색

mysql에서는 특정 범위 내의 데이터를 쿼리하기 위해 where 표현식과 함께 사용됩니다. 구문은 "select * from where field in (value)" 또는 "select * from where field not in (value)"입니다.

mysql에서 in의 사용법은 무엇입니까

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql에서 in의 사용법은 무엇인가요?

1. mysql의 기본 사용법

in은 where 표현식에 자주 사용되며, 그 기능은 특정 범위 내의 데이터를 쿼리하는 것입니다.

select * from where field in (value1,value2,value3,…)

IN 앞에 NOT 연산자가 오면 IN과 반대되는 의미, 즉 목록 항목 내에서 선택하지 않는다는 의미입니다.

select * from where field not in (value1,value2,value3,…)

2. IN 하위 쿼리

더 많은 경우 IN 목록 항목의 값은 다음과 같습니다.

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)

하위 쿼리를 통해 얻을 수 있는불명확함 이 SQL 예에서는 상태가 0(차단되었을 수 있음)인 모든 사용자의 모든 기사를 찾는 방법을 구현했습니다. 먼저 쿼리를 통해 상태=0인 모든 사용자를 가져옵니다.

SELECT uid FROM user WHERE status=0

그런 다음 쿼리 결과를 IN의 목록 항목으로 사용하여 최종 쿼리 결과를 얻습니다. 하위 쿼리에 반환되는 결과는 필드 목록 항목이어야 합니다.

In 하위 쿼리에서 쿼리 효율이 낮은 문제가 자주 발생합니다. 해결 방법은 다음과 같습니다.

1. 여전히 하위 쿼리를 사용하고 한 번 더 쿼리하세요

SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM ( SELECT zdcode FROM basic_h WHERE zdcode != "" ) AS h )

2. . IN 연산자에 대한 추가 지침

IN 목록 항목은 숫자뿐만 아니라 문자, 심지어 시간 및 날짜 유형까지 지원할 수 있으며 이러한 다양한 유형의 데이터 항목은 열 유형과 일치하지 않고 혼합 및 정렬될 수 있습니다.

SELECT zd.* FROM ( SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "" ) AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcode

하나의 IN만 가능 필드에 대한 범위 비교를 수행하기 위해 더 많은 필드를 지정하려면 AND 또는 OR 논리 연산자를 사용할 수 있습니다.

SELECT * FROM user WHERE uid IN(1,2,'3','c')

AND 또는 OR 논리 연산자를 사용한 후 IN도 가능합니다. LIKE, >=, = 등과 결합하여 연산자를 함께 사용합니다.

4. IN 연산자의 효율성에 관하여

IN의 목록 항목이 확실하면 대신 여러 OR을 사용할 수 있습니다.

  SELECT * FROM user WHERE uid IN(1,2) OR username IN('admin','manong')

// 이에 상응하는 것은:

SELECT * FROM user WHERE uid IN (2,3,5)

일반적으로 다음과 같이 믿어집니다. 1. 인덱스 필드에서 작업하는 경우 OR을 사용하는 것이 IN보다 효율적이지만 목록 항목이 불확실한 경우(예: 결과를 얻으려면 하위 쿼리가 필요함) IN 연산자를 사용해야 합니다. 또한, 서브쿼리 테이블의 데이터가 메인쿼리보다 작은 경우에도 IN 연산자를 적용할 수 있다.

2. in or or가 필드에 인덱스를 추가하지 않는 경우, 더 많은 필드가 연결될수록(1, 2, 3, 4 또는...) or의 쿼리 효율성은 in보다 훨씬 낮습니다.

【관련 추천:

mysql 비디오 튜토리얼

위 내용은 mysql에서 in의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.