>  기사  >  데이터 베이스  >  MySQL IN 사용법

MySQL IN 사용법

黄舟
黄舟원래의
2016-12-27 17:25:381852검색

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)

반환된 쿼리 결과는 다음과 같습니다.

MySQL IN 사용법

IN 하위 쿼리

IN 목록 항목의 값이 모호하고 하위 쿼리를 통해 얻을 수 있는 경우가 더 많습니다.

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

In 이 SQL에서는 예를 들어, 상태가 0(차단될 수 있음)인 모든 사용자의 모든 기사를 찾는 방법을 구현했습니다. 먼저 쿼리를 통해 상태=0인 모든 사용자를 가져옵니다.

SELECT uid FROM user WHERE status=0

그런 다음 쿼리 결과를 IN의 목록 항목으로 사용하여 최종 쿼리 결과를 얻습니다. 필드 목록 항목입니다.

IN 연산자 보충 지침

IN 목록 항목은 숫자뿐만 아니라 문자, 시간 및 날짜 유형까지 지원하며 이러한 다양한 유형의 데이터 항목을 따르지 않고도 혼합하여 정렬할 수 있습니다. 열 유형을 일관성 있게 유지하세요.

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)

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

위 내용은 MySQL IN 사용 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


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