> 데이터 베이스 > MySQL 튜토리얼 > Oracle의 LISTAGG처럼 MySQL에서 쉼표로 구분된 문자열 목록을 어떻게 만들 수 있나요?

Oracle의 LISTAGG처럼 MySQL에서 쉼표로 구분된 문자열 목록을 어떻게 만들 수 있나요?

DDD
풀어 주다: 2024-12-02 07:21:11
원래의
118명이 탐색했습니다.

How Can I Create a Comma-Separated List of Strings in MySQL Like Oracle's LISTAGG?

MySQL의 목록 생성을 위한 집계 함수(Oracle의 LISTAGG와 유사)

MySQL에서 집계 함수를 처리할 때 일반적인 요구 사항은 다음과 같습니다. 함께 그룹화된 값 목록을 반환합니다. Oracle에서는 LISTAGG 함수가 이러한 목적을 효과적으로 수행합니다. MySQL은 유사한 결과를 달성하는 대체 솔루션을 제공합니다.

문제 이해

당면 작업에는 MySQL에 저장된 데이터에서 문자열 목록을 생성하는 함수를 만드는 것이 포함됩니다. 테이블. 각 문자열은 쉼표로 구분되어야 합니다. 예를 들어, 테이블에 다음 데이터가 포함되어 있는 경우:

Id MyString
1 First
2 Second
3 Third
4 Fourth

Oracle의 LISTAGG 함수와 유사한 원하는 출력은 4보다 작은 ID를 필터링할 때 다음과 같습니다.

myList
First, Second, Third

해결책: GROUP_CONCAT()

MySQL은 다음을 제공합니다. 여러 값을 단일 문자열로 결합하는 강력한 도구인 GROUP_CONCAT() 집계 함수. 구문은 간단합니다.

GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
로그인 후 복사

지정된 필터링 기준이 있는 테이블에 이 함수를 적용하면 원하는 문자열 목록을 쉽게 얻을 수 있습니다.

예를 들어 다음 쿼리는 다음과 같습니다. 4보다 작은 ID에 대해 쉼표로 구분된 MyString 값 목록 생성:

SELECT GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
FROM table
WHERE id < 4
로그인 후 복사

추가 다양성

GROUP_CONCAT() 함수는 다른 기준에 따라 결과를 그룹화함으로써 더욱 다양한 가능성을 제공합니다. 예를 들어, 범주 필드와 같은 다른 열을 기준으로 결과를 그룹화하도록 쿼리를 수정할 수 있습니다.

SELECT category, GROUP_CONCAT(MyString SEPARATOR ', ') AS myList
FROM table
GROUP BY category
로그인 후 복사

이 향상된 기능을 사용하면 더욱 복잡하고 맞춤화된 목록 생성 시나리오를 만들 수 있습니다. MySQL은 GROUP_CONCAT() 함수를 활용하여 Oracle의 LISTAGG 기능과 비교할 수 있는 강력한 집계 및 목록 생성 솔루션을 제공합니다.

위 내용은 Oracle의 LISTAGG처럼 MySQL에서 쉼표로 구분된 문자열 목록을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿