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)
반환된 쿼리 결과는 다음과 같습니다.
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)를 참고해주세요!