>데이터 베이스 >MySQL 튜토리얼 >MySQL 및 PostgreSQL에서 N번째 단어를 추출하고 해당 단어의 발생 횟수를 계산하려면 어떻게 해야 합니까?

MySQL 및 PostgreSQL에서 N번째 단어를 추출하고 해당 단어의 발생 횟수를 계산하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-08 21:30:12273검색

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

MySQL에서 N번째 단어 추출 및 단어 발생 횟수 계산

제시된 질문은 특정 단어를 추출할 수 있는 MySQL 쿼리의 가능성에 관한 것입니다. 텍스트 문자열에서 해당 항목의 발생 횟수를 계산합니다. 제공된 예는 텍스트에서 두 번째 단어를 추출합니다.

Postgres용 쿼리 솔루션

MySQL은 기본적으로 직접 정규식 일치 추출을 지원하지 않지만 PostgreSQL과 같은 다른 데이터베이스는 보다 직접적인 접근 방식을 제공합니다. PostgreSQL에서는 다음 쿼리를 사용할 수 있습니다.

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;

이 쿼리는 SPLIT_PART 함수를 사용하여 텍스트를 공백을 기준으로 개별 단어로 분할하고 두 번째 단어를 추출합니다. 결과 테이블은 발생순으로 단어를 그룹화합니다.

MySQL에 대한 해결 방법

MySQL의 경우 직접 정규식 추출이 지원되지 않으므로 다른 접근 방식이 필요합니다. 한 가지 해결 방법은 하위 문자열과 위치 찾기 함수의 조합을 사용하는 것입니다.

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;

이 쿼리는 텍스트에서 첫 번째 단어 뒤의 첫 번째 공백 위치를 찾습니다. 그런 다음 이 위치에 공백 길이를 추가하여 두 번째 단어 추출을 시작합니다. 추출된 부분 문자열의 길이는 다음 공백을 찾아 시작 위치를 뺀 값으로 계산됩니다.

이 방법은 서로 다른 n번째 단어를 추출하기 위해 조정이 필요합니다.

위 내용은 MySQL 및 PostgreSQL에서 N번째 단어를 추출하고 해당 단어의 발생 횟수를 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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