>  기사  >  데이터 베이스  >  mysql에 포함된 문자열을 쿼리하는 방법

mysql에 포함된 문자열을 쿼리하는 방법

WBOY
WBOY원래의
2022-02-24 11:30:4225869검색

방법: 1. "'% string%'과 같은 필드가 있는 테이블 이름"을 사용하여 쿼리합니다. 2. "find_in_set(문자열, 필드)이 있는 테이블 이름"을 사용하여 쿼리합니다. 3. "(문자열)을 찾는 테이블 이름"을 사용합니다. ,필드)' 쿼리입니다.

mysql에 포함된 문자열을 쿼리하는 방법

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql에 포함된 문자열을 쿼리하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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