mysql 쿼리 접합

王林
王林원래의
2023-05-20 09:57:384234검색

MySQL 쿼리 스플라이싱

MySQL을 사용하여 쿼리할 때 여러 필드나 여러 테이블의 필드를 스플라이싱해야 하는 경우가 있습니다. 이 경우 MySQL에서 제공하는 문자열 스플라이싱 기능을 사용하여 작동할 수 있습니다. 일반적으로 사용되는 문자열 연결 함수에는 CONCAT, CONCAT_WS 및 GROUP_CONCAT이 있습니다.

  1. CONCAT 함수

CONCAT 함수는 두 개 이상의 문자열 또는 필드를 연결하는 데 사용됩니다. 구문은 다음과 같습니다.

CONCAT(string1, string2, ...)

여기서, string1, string2...는 연결할 문자열 또는 필드를 나타내며 상수일 수 있습니다. 열 이름, 표현식, 함수 등 예를 들어 직원의 이름과 직위를 찾으려면 다음 문을 사용할 수 있습니다.

SELECT CONCAT(last_name, ' ', first_name) AS name, job_title
FROM employees

여기서 CONCAT 함수는 last_name과 first_name을 연결하고 쿼리 결과의 필드 이름으로 공백으로 구분합니다. 실행 결과는 다음과 같습니다.

name job_title
Geoni Bakewell Production Manager
Lemuel Marmie Shipping Manager
Lino Uselman 엔지니어
Honey Tunney Sales Manager
... ...
  1. CONCAT_WS 함수

CONCAT_WS 함수도 문자열 연결에 사용되지만 CONCAT 함수와 달리 구분 기호를 지정할 수 있습니다. , 구문은 다음과 같습니다.

CONCAT_WS(separator, string1, string2, ...)

그중 구분 기호는 구분 기호를 나타내며 문자열1, 문자열2...는 연결할 문자열 또는 필드를 나타내며 여러 문자열은 쉼표로 구분됩니다. 예를 들어 직원의 전체 이름과 이메일 주소를 찾으려면 다음 명령문을 사용할 수 있습니다.

SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email
FROM employees

여기서 CONCAT_WS 함수는 공백을 구분 기호로 사용하여 쿼리 결과에서 first_name과 last_name을 필드 full_name으로 연결합니다. 실행 결과는 다음과 같습니다:

full_name email
Geoni Bakewell gbakewell@classicmodelcars.com
Lemuel Marmie lmarm ie@classic modelcars.com
Lino Uselman luselman @classicmodelcars.com
Honey Tunney htunney@classicmodelcars.com
... ...
  1. GROUP_CONCAT 함수

GROUP_CONCAT 함수는 결합에 사용됩니다. 여러 필드 또는 레코드의 여러 A 필드가 문자열로 연결되고 구문은 다음과 같습니다.

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

여기서 expr은 연결될 열 또는 표현식을 나타내며 ORDER BY 및 SEPARATOR는 각각 선택 사항인 정렬 및 구분 기호를 나타냅니다. 기본적으로 GROUP_CONCAT 함수에 의해 반환되는 문자열에는 길이 제한이 있으며 이는 group_concat_max_len 매개변수를 설정하여 변경할 수 있습니다.

예를 들어, 각 부서의 모든 직원의 이름을 쿼리하고 이를 쉼표로 구분된 문자열로 연결하려면 다음 명령문을 사용하면 됩니다.

SELECT department, GROUP_CONCAT(last_name ORDER BY employee_number ASC SEPARATOR ', ') AS employee_names
FROM employees
GROUP BY department

여기서 GROUP_CONCAT 함수는 last_name을 직원 번호 순으로 정렬하고, 이를 정렬합니다. 쿼리 결과의 Employee_names 필드로 공백으로 구분된 쉼표를 사용합니다. 실행 결과는 다음과 같습니다:

department employee_names
Admin Murphy, Patterson, Bondur, Ferrante, Firrelli
Customer Service 티셍, 바나프, 폰 ^^ ^^^^
Finance Bow, Firrelli, Patterson, Tseng
... ...
  1. Summary

MySQL 쿼리 프로세스에서는 다음을 수행해야 하는 경우가 많습니다. 여러 필드를 쿼리하거나 여러 테이블의 필드를 연결합니다. 이 함수를 구현할 때 MySQL은 두 개 이상의 문자열을 연결하고, 여러 문자열을 연결하고 지정된 구분 기호로 구분하고, 여러 필드를 문자열로 결합하는 데 사용되는 CONCAT, CONCAT_WS 및 GROUP_CONCAT의 세 가지 문자열 연결 함수를 제공합니다. 이러한 기능을 사용하면 데이터 처리가 크게 촉진되고 쿼리 효율성이 향상됩니다.

위 내용은 mysql 쿼리 접합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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