>데이터 베이스 >MySQL 튜토리얼 >MySQL을 효율적으로 사용하여 문자열 필드에서 여러 값과 일치하는 행을 찾으려면 어떻게 해야 합니까?

MySQL을 효율적으로 사용하여 문자열 필드에서 여러 값과 일치하는 행을 찾으려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-06 05:13:43970검색

How Can I Efficiently Use MySQL to Find Rows Matching Multiple Values in a String Field?

MySQL의 Like 연산자 범위 확장

MySQL의 Like 연산자는 문자열의 패턴을 일치시키는 강력한 도구입니다. 그러나 여러 값이 포함된 복잡한 일치 기준을 처리할 때 때로는 부족할 수 있습니다.

관심분야 필드에 스포츠나 술집(또는 둘 다)이 포함된 행을 검색하는 것을 목표로 하는 다음 쿼리를 고려해 보세요.

SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')

놀랍게도 이 쿼리는 원하는 결과를 얻지 못합니다. 그 이유는 Like 연산자가 여러 패턴을 처리하는 방식에 있습니다. 각 패턴을 순차적으로 적용하고 두 패턴 모두와 일치하는 행을 반환합니다. 이 경우 쿼리는 다음과 같습니다.

SELECT * FROM table WHERE interests LIKE ('%sports%') AND interests LIKE ('%pub%')

관심사 필드 값에 "스포츠"와 "펍"이 모두 포함되어 있지 않으므로 쿼리는 빈 집합을 반환합니다.

해결책: 대체 매칭 기술 수용

이 문제를 해결하려면 다른 접근 방식을 채택해야 합니다. 첫 번째 옵션은 논리 연산자를 사용하여 패턴을 분리하는 것입니다.

SELECT * FROM table WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'

이 쿼리는 관심분야 필드에 "스포츠" 또는 "펍"이 포함된 행과 효과적으로 일치합니다.

더욱 더 효율적인 해결책은 정규식을 사용하여 패턴을 일치시킬 수 있는 MySQL의 REGEXP 연산자를 사용하는 것입니다.

SELECT * FROM table WHERE interests REGEXP 'sports|pub'

이 쿼리는 '|' (파이프) 기호를 사용하여 관심사 필드가 "스포츠" 또는 "펍"과 일치해야 함을 지정합니다.

이러한 대체 일치 기술을 사용하면 Like 연산자의 기능을 확장하고 원하는 항목을 충족하는 행을 검색할 수 있습니다. 기준입니다.

위 내용은 MySQL을 효율적으로 사용하여 문자열 필드에서 여러 값과 일치하는 행을 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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