MySQL 연결 함수 CONCAT 의 사용 소감
1.concat 함수 와 관련 된 몇 가지 용법
1-1,함수:concat(str1,str2,...)
concat 함 수 는 보통 SELECT 조회 문법 에 사용 되 는데 반환 필드 내용 을 수정 하 는 데 사 용 됩 니 다.예 를 들 어 LOL 영웅 정보 표 는 다음 과 같 습 니 다.
mysql> select * from `LOL`;
+----+---------------+--------------+-------+
| id | hero_title | hero_name | price |
+----+---------------+--------------+-------+
| 1 | D | | 6300 |
| 2 | X | | 6300 |
| 3 | G | | 1350 |
| 4 | F | | 6300 |
| 5 | Z | | 6300 |
| 6 | W | | 450 |
| 7 | J | | 450 |
+----+---------------+--------------+-------+
7 rows in set (0.00 sec)
영웅 칭호-영웅 명칭 의 데 이 터 를 되 돌려 야 합 니 다.이것 은 concat 함 수 를 사 용 했 습 니 다.다음 과 같 습 니 다.
SELECT CONCAT(hero_title,' - ',hero_name) as full_name, price from `LOL`;
mysql> SELECT CONCAT(hero_title,' - ',hero_name) as full_name, price from `LOL`;
+------------------------------+-------+
| full_name | price |
+------------------------------+-------+
| D - | 6300 |
| X - | 6300 |
| G - | 1350 |
| F - | 6300 |
| Z - | 6300 |
| W - | 450 |
| J - | 450 |
+------------------------------+-------+
7 rows in set (0.00 sec)
연 결 된 인자 에 NULL 이 있 으 면 NULL 을 되 돌려 줍 니 다.다음 과 같다.
SELECT CONCAT(hero_title,NULL,hero_name) as full_name, price from `LOL`;
mysql> SELECT CONCAT(hero_title,'NULL',hero_name) as full_name, price from `LOL`;
+-------------------------------+-------+
| full_name | price |
+-------------------------------+-------+
| D NULL | 6300 |
| X NULL | 6300 |
| G NULL | 1350 |
| F NULL | 6300 |
| Z NULL | 6300 |
| W NULL | 450 |
| J NULL | 450 |
+-------------------------------+-------+
7 rows in set (0.00 sec)
죄 송 하지만 위 에 제 동생 이 쓴 것 입 니 다.정확 한 것 은 다음 과 같 습 니 다.
mysql> SELECT CONCAT(hero_title,NULL,hero_name) as full_name, price from `LOL`;
+-----------+-------+
| full_name | price |
+-----------+-------+
| NULL | 6300 |
| NULL | 6300 |
| NULL | 1350 |
| NULL | 6300 |
| NULL | 6300 |
| NULL | 450 |
| NULL | 450 |
+-----------+-------+
7 rows in set (0.00 sec)
1-2,함수:concatws(separator,str1,str2,…)CONCAT_WS()함수 전 칭:CONCAT With Separator 는 CONCAT()의 특수 한 형식 입 니 다.첫 번 째 매개 변수(separator)는 다른 매개 변수의 구분자 입 니 다.구분자 의 위 치 는 연결 할 두 문자열 사이 에 있 습 니 다
, 。
주의해 야 할 것 은: NULL, NULL; NULL, , NULL。
자,우 리 는 여전히 위의 LOL 표 로 각 필드 를 연결 하여 쉼표 로 구분 합 니 다.
select concat_ws(',',hero_title,hero_name,price) as full_name, price from `LOL`;
mysql> select concat_ws(',',hero_title,hero_name,price) as full_name, price from `LOL`;
+---------------------------------+-------+
| full_name | price |
+---------------------------------+-------+
| D , ,6300 | 6300 |
| X , ,6300 | 6300 |
| G , ,1350 | 1350 |
| F , ,6300 | 6300 |
| Z , ,6300 | 6300 |
| W , ,450 | 450 |
| J , ,450 | 450 |
+---------------------------------+-------+
7 rows in set (0.00 sec)
구분자 뒤의 연결 매개 변수 가 NULL 일 때 무시 하고 전체 결과 에 영향 을 주지 않 습 니 다.다음 과 같 습 니 다.
select concat_ws(',',hero_title,NULL,hero_name) as full_name, price from `LOL`;
mysql> select concat_ws(',',hero_title,NULL,hero_name) as full_name, price from `LOL`;
+----------------------------+-------+
| full_name | price |
+----------------------------+-------+
| D , | 6300 |
| X , | 6300 |
| G , | 1350 |
| F , | 6300 |
| Z , | 6300 |
| W , | 450 |
| J , | 450 |
+----------------------------+-------+
7 rows in set (0.00 sec)
구분자 가 NULL 일 때 결 과 는 NULL 로 돌아 갑 니 다.다음 과 같 습 니 다.
select concat_ws(NULL,hero_title,hero_name,price) as full_name, price from `LOL`;
mysql> select concat_ws(NULL,hero_title,hero_name,price) as full_name, price from `LOL`;
+-----------+-------+
| full_name | price |
+-----------+-------+
| NULL | 6300 |
| NULL | 6300 |
| NULL | 1350 |
| NULL | 6300 |
| NULL | 6300 |
| NULL | 450 |
| NULL | 450 |
+-----------+-------+
7 rows in set (0.00 sec)
1-3、함수:groupconcat(expr)group_concat([DISTINCT]필드 이름[order by 정렬 필드 ASC/DESC][Separator'구분자'])
group_concat 함 수 는 보통 group by 가 있 는 검색 어,group 에 사 용 됩 니 다.concat 는 일반적으로 검색 결과 필드 에 포 함 됩 니 다.
혹시 groupconcat 함수 공식 이 복잡 해 보이 는데?우리 함께 보 자.위의 공식 에서[]괄호 는 선택 할 수 있 고 사용 할 수 있 는 지 없 는 지 를 나타 낸다.
4.567917.1.4.567914.연결 하 는 매개 변수 에 대해 재 활용 기능 을 지원 합 니 다
[DISTINCT]
맞 춤 형 매개 변 수 는 정렬 기능 을 지원 합 니 다또 주제 에서 벗 어 났 다.죄송합니다.
mysql> select * from `LOL`;
+----+---------------+--------------+-------+
| id | hero_title | hero_name | price |
+----+---------------+--------------+-------+
| 1 | D | | 6300 |
| 2 | X | | 6300 |
| 3 | G | | 1350 |
| 4 | F | | 6300 |
| 5 | Z | | 6300 |
| 6 | W | | 450 |
| 7 | J | | 450 |
+----+---------------+--------------+-------+
7 rows in set (0.00 sec)
『8195』장면 을 들 어 우 리 는 각 가격 대의 영웅 을 구분 해 야 한다.만약 group 을 사용 하지 않 는 다 면.concat 라면 order by 로 만 구분 할 수 있 을 것 같 습 니 다.
select * from `LOL` order by price desc;
mysql> select * from `LOL` order by price desc;
+----+---------------+--------------+-------+
| id | hero_title | hero_name | price |
+----+---------------+--------------+-------+
| 1 | D | | 6300 |
| 2 | X | | 6300 |
| 4 | F | | 6300 |
| 5 | Z | | 6300 |
| 3 | G | | 1350 |
| 6 | W | | 450 |
| 7 | J | | 450 |
+----+---------------+--------------+-------+
7 rows in set (0.00 sec)
그런데 이렇게 하면 직관 적 이지 않 아 요.한 줄 다 보고 싶 어 요.어 떡 해요?
SELECT GROUP_CONCAT(hero_title,' - ',hero_name Separator ',' ) as full_name, price
from `LOL` GROUP BY price ORDER BY price desc;
이때 GROUPCONCAT 함 수 는 이 문 제 를 쉽게 해결 해 줍 니 다.봐,편 해~주석:여 기 는 제 가 맞 췄 습 니 다(herotitle,' - ‘,hero_name)이 세 개의 매개 변 수 는 구분자 가','로 설정 되 어 있 으 며,가격 에 따라 그룹 을 나 누고,가격 에 따라 배열 되 어 있 습 니 다.효 과 는 다음 과 같다.
mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name Separator ',' ) as full_name, price from `LOL` GROUP BY price ORDER BY price desc;
+------------------------------------------------------------------------+-------+
| full_name | price |
+------------------------------------------------------------------------+-------+
| D - ,X - ,F - ,Z - | 6300 |
| G - | 1350 |
| W - ,J - | 450 |
+------------------------------------------------------------------------+-------+
3 rows in set (0.00 sec)
가격(price)에 따라 어 릴 때 부터 큰 순서 로 정렬 하면 외부 ORDER BY 를 제어 하면 됩 니 다.다음 과 같 습 니 다.
SELECT GROUP_CONCAT(hero_title,' - ',hero_name Separator ',' ) as full_name, price
from `LOL` GROUP BY price ORDER BY price asc;
mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name Separator ',' ) as full_name, price from `LOL` GROUP BY price ORDER BY price asc;
+-------------------------------------------------------------------------+-------+
| full_name | price |
+-------------------------------------------------------------------------+-------+
| W - ,J - | 450 |
| G - | 1350 |
| D - ,X - ,F - ,Z - | 6300 |
+-------------------------------------------------------------------------+-------+
3 rows in set (0.00 sec)
그럼 GROUPCONCAT 함수 의 order by 정렬 은 어떻게 사용 합 니까?hero 와 같은 맞 춤 형 필드 의 정렬 에 사 용 됩 니 다.title 정렬 연결 을 진행 합 니 다.다음 과 같 습 니 다.
SELECT GROUP_CONCAT(hero_title,' - ',hero_name order by hero_title Separator ',' ) as full_name, price from `LOL` GROUP BY price ORDER BY price asc;
mysql> SELECT GROUP_CONCAT(hero_title,' - ',hero_name order by hero_title Separator ',' ) as full_name, price from `LOL` GROUP BY price ORDER BY price asc;
+-------------------------------------------------------------------------+-------+
| full_name | price |
+-------------------------------------------------------------------------+-------+
| J - ,W - | 450 |
| G - | 1350 |
| D - ,F - ,X - ,Z - | 6300 |
+-------------------------------------------------------------------------+-------+
3 rows in set (0.00 sec)
좋 습 니 다.MySQL 의 concat 조합 함수 가 좋 은 것 을 알 수 있 습 니 다.비슷 한 수요 나 곤 혹 스 러 울 때 생각 하 시기 바 랍 니 다!혹은 이 블 로 그 를 찾 아서 당신 을 도 울 수 있 습 니 다!MySQL 맞 춤 함수 CONCAT 의 사용 소감 을 자세히 알 아 보 는 이 글 은 여기까지 입 니 다.더 많은 MySQL 맞 춤 함수 CONCAT 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.