>데이터 베이스 >MySQL 튜토리얼 >쉼표로 구분된 MySQL 문자열의 특정 값을 정확하게 일치시키는 방법은 무엇입니까?

쉼표로 구분된 MySQL 문자열의 특정 값을 정확하게 일치시키는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-22 21:32:10910검색

How to Accurately Match Specific Values in Comma-Separated MySQL Strings?

쉼표로 구분된 MySQL 문자열의 특정 값과 일치

쉼표로 구분된 값이 포함된 테이블로 작업할 때 이러한 문자열 내에서 특정 값을 분리해야 하는 경우가 많습니다. 그러나 와일드카드 문자(%)와 함께 LIKE 연산자를 사용하면 예기치 않은 일치가 발생할 수 있습니다.

'1,2,5,12,15'와 같은 값이 포함된 SHIRTS 테이블의 COLORS 필드를 생각해 보세요. "SELECT * FROM 셔츠 WHERE colors LIKE '%1%'"와 같은 쿼리는 빨간색(color=1)이 있는 모든 셔츠를 찾으려고 시도합니다. 그러나 회색(색상=12) 및 주황색(색상=15) 색상의 셔츠도 예기치 않게 검색됩니다.

해결책:

1. 쉼표 연결:

일반적인 해결 방법은 문자열의 왼쪽과 오른쪽에 쉼표를 연결하는 것입니다.

<code class="language-sql">SELECT * FROM shirts WHERE CONCAT(',', colors, ',') LIKE '%,1,%'</code>

이렇게 하면 문자열 앞뒤에 쉼표가 추가되어 정확히 일치하는 항목(색상=1)만 선택됩니다.

2. find_in_set 함수 사용:

또는 find_in_set 함수를 사용하여 쉼표로 구분된 문자열에서 특정 값을 검색할 수 있습니다.

<code class="language-sql">SELECT * FROM shirts WHERE find_in_set('1', colors) > 0</code>

이 함수는 지정된 값이 문자열에 있으면 0이 아닌 값을 반환하여 색상=1인 셔츠를 효과적으로 격리합니다.

위 내용은 쉼표로 구분된 MySQL 문자열의 특정 값을 정확하게 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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