>  기사  >  데이터 베이스  >  mysql 함수 concat 및 group_concat 사용에 대한 지침

mysql 함수 concat 및 group_concat 사용에 대한 지침

jacklove
jacklove원래의
2018-06-09 09:30:022182검색

1.concat() 함수

사용 방법: concat(str1,str2,…)
반환된 결과는 연결 매개 변수에 의해 생성된 문자열입니다. 매개 변수가 null이면 반환 값은 null

입니다. 참고:
모든 매개변수가 이진이 아닌 문자열인 경우 결과는 이진이 아닌 문자열입니다.
인수에 이진 문자열이 포함된 경우 결과는 이진 문자열입니다.
숫자 매개변수는 다음과 같은 경우 동일한 이진 문자열 형식으로 변환됩니다. 이러한 상황을 피하려면 명시적 유형 캐스팅을 사용할 수 있습니다. 매개변수는 null

select concat(cast(int_col as char), char_col);

2.concat_ws() 함수

사용 방법:concat_ws(separator, str1, str2,…)
concat_ws() 함수는 concat() 함수의 특수한 형태입니다. 첫 번째 매개변수 다른 매개변수에 대한 구분 기호입니다. 구분 기호의 위치는 연결할 두 문자열 사이입니다. 구분 기호는 문자열이나 기타 매개변수일 수 있습니다.

구분자가 null이면 결과는 null입니다.

함수는 구분 기호 매개변수 뒤의 null 값을 무시하지만 concat_ws()는 빈 문자열을 무시하지 않습니다.
사용 예:

1. 여러 필드를 구분하려면 ','를 사용하세요.

mysql> select concat(',',name,',') from `user`;
+--------------------------+| concat(',',fdipzone,',') |
+--------------------------+| ,fdipzone,               |
+--------------------------+1 row in set (0.00 sec)

2. 구분 기호는 null

mysql> select concat(null,name) from `user`;
+-------------------+| concat(null,name) |
+-------------------+| NULL              |
+-------------------+1 row in set (0.00 sec)

3입니다.

mysql> select concat_ws(',',country_code,phone,region) from `user`;
+------------------------------------------+| concat_ws(',',country_code,phone,region) |
+------------------------------------------+| 86,13794830550,GZ                        |
+------------------------------------------+1 row in set (0.00 sec)
3.group_concat() 함수
사용법: GROUP_CONCAT([DISTINCT] expr [,expr …]

[ORDER BY {unsigned_integer | col_name | Formula} [ASC | DESC] [,col …]]

[SEPARATOR str_val ])
group_concat은 표현식 조합의 연결 값을 가져올 수 있으며, Unique를 사용하여 중복 값을 제외할 수 있습니다. 정렬은 order by 절을 사용하여 수행할 수 있습니다.

구분 기호는 결과 집합의 각 요소를 구분하는 데 사용되는 문자열입니다. 기본값은 쉼표이며, 구분 기호 ""를 지정하면 이 구분 기호를 완전히 제거할 수 있습니다.


사용 예:

테이블 구조

mysql> select concat_ws(null,country_code,phone,region) from `user`;
+-------------------------------------------+| concat_ws(null,country_code,phone,region) |
+-------------------------------------------+| NULL                                      |
+-------------------------------------------+1 row in set (0.00 sec)

데이터 삽입:

mysql> select concat_ws(',',country_code,phone,null,region,'',grade) from `user`;
+--------------------------------------------------------+| concat_ws(',',country_code,phone,null,region,'',grade) |
+--------------------------------------------------------+| 86,13794830550,GZ,,200                                 |
+--------------------------------------------------------+1 row in set (0.00 sec)
CREATE TABLE `article_in_category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `article_id_INDEX` (`article_id`), KEY `category_id_INDEX` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

기사 ID 및 모든 카테고리 ID 가져오기
INSERT INTO `article_in_category` (`id`, `article_id`, `category_id`) VALUES (NULL, '1', '1'),
(NULL, '1', '2'),(NULL, '1', '3'),(NULL, '2', '4'),(NULL, '2', '3'),(NULL, '2', '5'),(NULL, '3', '1'),
(NULL, '3', '5'),(NULL, '3', '6'),(NULL, '4', '8');

참고: group_concat() 함수는 반환된 결과에 길이 제한이 있습니다. , 기본값은 1024바이트

group_concat 반환 값의 최대 길이 보기

mysql> select * from `article_in_category`;
+----+------------+-------------+| id | article_id | category_id |
+----+------------+-------------+|  1 |          1 |           1 |
|  2 |          1 |           2 |
|  3 |          1 |           3 |
|  4 |          2 |           4 |
|  5 |          2 |           3 |
|  6 |          2 |           5 |
|  7 |          3 |           1 |
|  8 |          3 |           5 |
|  9 |          3 |           6 || 10 |          4 |           8 |
+----+------------+-------------+

group_concat 반환 값의 최대 길이 수정

mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id;
+------------+----------------------------------------------------+| article_id | group_concat(category_id order by category_id asc) |
+------------+----------------------------------------------------+|          1 | 1,2,3                                              |
|          2 | 3,4,5                                              |
|          3 | 1,5,6                                              ||          4 | 8                                                  |
+------------+----------------------------------------------------+4 rows in set (0.00 sec)

이 문서에서는 mysql 함수 concat 및 group_concat.더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장사항: mysql innodb 시작 실패 및 재시작 불가 처리 방법에 대한 설명

PHP에서 지정된 날짜를 얻는 방법에 대한 설명

위 내용은 mysql 함수 concat 및 group_concat 사용에 대한 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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