>데이터 베이스 >MySQL 튜토리얼 >MySQL의 LIKE 연산자를 사용하여 여러 값을 효율적으로 쿼리하는 방법은 무엇입니까?

MySQL의 LIKE 연산자를 사용하여 여러 값을 효율적으로 쿼리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-06 03:37:39896검색

How to Efficiently Query Multiple Values with MySQL's LIKE Operator?

MySQL LIKE 쿼리의 여러 값

데이터베이스에서 LIKE 연산자는 일반적으로 문자열의 패턴을 일치시키는 데 사용됩니다. 그러나 단일 필드 내에서 여러 값에 대한 일치 항목을 찾아야 하는 경우 까다로울 수 있습니다. 이 문서에서는 MySQL에서 LIKE 연산자를 사용하여 여러 값을 쿼리하는 문제를 살펴봅니다.

LIKE 쿼리가 작동하지 않는 이유

제공된 쿼리에 따라:

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

이 쿼리는 'interests' 필드에 'sports', 'pub' 또는 둘 다 포함된 행을 검색합니다. 그러나 LIKE는 지정된 패턴이 있는지 순차적으로 확인하므로 원하는 결과를 얻지 못할 수 있습니다. 이 경우 모든 행에 존재하는 '%sports%'를 먼저 찾고, 한 행에만 존재하는 '%pub%'를 찾습니다. 따라서 '스포츠'와 '펍'이 모두 포함된 행만 얻게 됩니다.

더 빠르고 효율적인 솔루션

여러 패턴으로 LIKE를 사용하는 대신, 다음 대안을 고려하십시오.

또는 논리적 연산자:

WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'

이 쿼리는 OR 논리 연산자를 사용하여 두 개의 LIKE 문을 결합합니다. 두 패턴 중 하나와 일치하는 행을 반환합니다. 이 방법은 일반적으로 여러 패턴을 사용하는 LIKE보다 빠릅니다.

REGEXP 정규 표현식:

WHERE interests REGEXP 'sports|pub'

REGEXP 연산자를 사용하면 정규 표현식을 검색할 수 있습니다. 이 경우 'sports|pub'이라는 표현은 'sports' 또는 'pub'과 일치하는 항목을 찾는다는 의미입니다. REGEXP는 보다 복잡한 패턴 일치를 위한 강력한 도구가 될 수 있습니다.

참조 링크:

  • MySQL 포럼 토론: http://forums.mysql.com/read.php?10,392332,392950#msg-392950
  • MySQL REGEXP 문서: http://www.tutorialspoint.com/mysql/mysql-regexps.htm

위 내용은 MySQL의 LIKE 연산자를 사용하여 여러 값을 효율적으로 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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