방법: 1. "'% string%'과 같은 필드가 있는 테이블 이름"을 사용하여 쿼리합니다. 2. "find_in_set(문자열, 필드)이 있는 테이블 이름"을 사용하여 쿼리합니다. 3. "(문자열)을 찾는 테이블 이름"을 사용합니다. ,필드)' 쿼리입니다.
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
MySQL에서 특정 문자열에 특정 문자열이 포함되어 있는지 확인하는 3가지 방법을 요약합니다.
먼저 취미로 yanggb를 사용하여 사용자 테이블에서 기록을 쿼리하는 간단한 시나리오를 살펴보겠습니다.
방법 1: 와일드카드 문자 %를 사용합니다.
와일드카드도 퍼지 매칭으로 선행 퍼지 쿼리, 후행 퍼지 쿼리, 전체 선행 일치 쿼리로 나눌 수 있으며, 특정 문자열에 또 다른 퍼지 쿼리가 포함되어 있는지 쿼리하는 시나리오에 적합합니다.
select * from user where hobby like '%yanggb%';
의 사용 시나리오는 취미에서 yanggb의 기록을 찾는 것으로 제한되지만(취미는 쉼표로 구분된 여러 값임) 그 반대는 아닙니다.
방법 2: MySQL에서 제공하는 문자열 함수 find_in_set()을 사용합니다.
MySQL은 str2에서 str1의 위치 인덱스를 반환하는 데 사용되는 문자열 함수 find_in_set(str1,str2) 함수를 제공합니다. 이를 찾으면 true(1)를 반환하고, 그렇지 않으면 false(0)를 반환합니다. str2는 반자 쉼표([,])로 구분되어야 합니다.
select * from user where find_in_set('yanggb', hobby);
일치하는 문자열을 첫 번째 매개변수로 사용하는 경우 적용 가능한 시나리오는 취미에서 yanggb의 기록을 찾는 것입니다(취미는 쉼표로 구분된 여러 값입니다).
select * from user where find_in_set(hobby, 'yanggb1,yanggb2,yanggb3');
일치하는 문자열을 두 번째 매개변수로 사용하는 경우 적용 가능한 시나리오는 취미에서 yanggb1, yanggb2 및 yanggb3 중 하나가 포함된 레코드를 찾는 것입니다(취미는 단일 값).
방법 3: MySQL에서 제공하는 문자열 함수 Locate() 함수를 사용합니다.
MySQL은 또한 str에서 substr의 위치 인덱스를 반환하는 데 사용되는 문자열 함수 Locate(substr, str) 함수를 제공합니다. 발견되면 0보다 큰 숫자를 반환하고, 그렇지 않으면 0을 반환합니다.
select * from user where locate('yanggb', hobby) > 0;
적용 가능한 시나리오는 find_in_set() 함수와 유사합니다. 두 함수의 유일한 차이점은 반환 값입니다.
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql에 포함된 문자열을 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!