MySQL 쿼리: 쉼표로 구분된 문자열의 값을 정확하게 타겟팅
많은 데이터베이스는 쉼표로 구분된 값(CSV)이 포함된 필드를 활용합니다. 이는 이러한 문자열 내에서 특정 값을 쿼리할 때 종종 문제를 야기합니다. COLORS
테이블의 SHIRTS
열을 생각해 보세요. LIKE
과 같은 간단한 SELECT * FROM SHIRTS WHERE COLORS LIKE '%1%'
쿼리는 부정확한 결과를 낳을 수 있으며 '1'이 더 큰 값(예: '12' 또는 '15')의 일부인 항목을 반환할 수 있습니다.
색상이 '1'인 셔츠만 정확하게 검색하려면 부분 일치를 피하세요. 두 가지 효과적인 전략은 다음과 같습니다.
방법 1: 정확한 일치를 위해 쉼표 추가
이 접근 방식에서는 비교하기 전에 CSV 문자열 옆에 쉼표를 사용하는 방법이 포함됩니다. 이렇게 하면 완전한 값만 일치됩니다.
<code class="language-sql">SELECT * FROM SHIRTS WHERE CONCAT(',', COLORS, ',') LIKE '%,1,%'</code>
선행 및 후행 쉼표를 추가하면 문자열 내에 ',1,'이 존재하는 항목만 선택됩니다.
방법 2: FIND_IN_SET 활용
FIND_IN_SET
기능은 보다 직접적인 솔루션을 제공합니다. 쉼표로 구분된 문자열 내에서 하위 문자열의 위치를 식별하고, 발견되면 0이 아닌 값을 반환합니다.
<code class="language-sql">SELECT * FROM SHIRTS WHERE FIND_IN_SET('1', COLORS) > 0</code>
이 방법은 숫자 식별자나 색상 코드를 처리할 때 특히 유용합니다. COLORS
문자열
위 내용은 MySQL을 사용하여 쉼표로 구분된 문자열에서 특정 값을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!