>  기사  >  데이터 베이스  >  MySQL WHERE IN() 절에서 여러 값이 있는 레코드를 처리하는 방법은 무엇입니까?

MySQL WHERE IN() 절에서 여러 값이 있는 레코드를 처리하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-06 18:07:03184검색

How to Handle Records with Multiple Values in a MySQL WHERE IN() Clause?

MySQL IN() 연산자

MySQL 데이터베이스를 쿼리할 때 WHERE IN() 연산자를 사용하여 특정 항목을 기반으로 행을 검색하는 경우가 많습니다. 열의 값. 예를 들어, 다음 쿼리는 "id" 열이 값(1, 2, 3, 4)과 일치하는 "table" 테이블의 모든 행을 검색합니다.

<code class="sql">SELECT * FROM table WHERE id IN (1,2,3,4);</code>

그러나 문제가 발생합니다. 레코드에 1 및 3과 같은 여러 "id" 값이 있는 경우. 이러한 경우 쿼리는 해당 값을 반환하지 않을 수 있습니다. row.

해결책

쿼리는 다음 OR 조건으로 변환됩니다.

<code class="sql">SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';</code>

따라서 다음 중 하나와 일치하는 행만 반환합니다.

이 문제를 해결하기 위한 한 가지 옵션은 "id" 열에 SET 데이터 유형을 사용하는 것입니다. 이를 통해 쉼표로 구분된 문자열을 사용하여 여러 값을 저장할 수 있습니다. 그런 다음 FIND_IN_SET() 함수를 사용하여 특정 값을 검색할 수 있습니다.

<code class="sql">SELECT * FROM table WHERE FIND_IN_SET('1', id);</code>

이 쿼리는 "id" 열의 값 중 하나로 '1'이 포함된 모든 행을 반환합니다. 존재할 수 있는 다른 값.

위 내용은 MySQL WHERE IN() 절에서 여러 값이 있는 레코드를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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