여러 MySQL 행뿐만 필드이므로 하나의 연결 할 수 있습니까?

Mysql ',' 난 할 수 있는 사용하여 다음과 같은 항목을

SELECT hobbies FROM peoples_hobbies WHERE person_id = 5;
  • 내 Output:*
shopping
fishing
coding

대신 난 그냥 1 행, 1 열:

  • 걱정했던것 Output:*
shopping, fishing, coding

39 m, 여러 곳에서 여러 값을 선택하는 것이 가장 큰 이유는 I& I& # 39 표, 그 모든 조인, ve got a, d # 39 와 같은 것보다 더 많은 행뿐만 I&.

39 의, 함수, ve i& 생각하고, MySQL, http://dev.mysql.com/doc/refman/5.0/en/string-functions.html # function_concat-ws&quot &gt Doc&lt &lt a href = &quot /a>;; # 39 와 같은 't look it doesn& CONCAT' 또는 ',' 기능을 결과 세트를 도왔으매 누구 아는 CONCAT_WS 동의하십시오 여기서 이렇게 할 것인가.

질문에 대한 의견 (1)
해결책

['GROUP_CONCAT'] [그룹 concat] 사용할 수 있습니다.

SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;

루트비히 명시된 대로 [그의 발언은,] [루트비히] '다른' 연산자입니다 중복을 피하기 위해 추가할 수 있습니다.

SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies 
GROUP BY person_id;

얀 [그들의 의견] [얀] 로 명시된 값을 사용하여 '이' ORDER BY 내파 전에 정렬하려면 수도 있습니다.

SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;

[그의 발언은,] [다그] 로 명시된 dag () 는 1024년 바이트입니다 제한값 그 결과에 대한. 이를 해결하기 위해서는, 먼저 쿼리하지 실행하십시오 질의와:

SET group_concat_max_len = 2048;

물론 필요에 따라 '2048년' 변경할 수 있습니다. 계산하고 할당하십시오 가치:

SET group_concat_max_len = CAST(
    (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
    FROM peoples_hobbies 
    GROUP BY person_id)
    AS UNSIGNED
);

[그룹 concat]: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html # function_group-concat [다그]: # comment12638055_276949 https://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field/276949 [루트비히]: https://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field # comment14513101_276949 [1월]: https://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field # comment72475644_276949

해설 (8)

Mysql 은 버전 (4.1) '' GROUP_CONCAT 경우 투명지에 look at it. [문서] [1] 에서 자세한 내용을 참조.

다음과 같은 항목을 볼 수 있지 않을까 생각한다 "고 말했다

  SELECT GROUP_CONCAT(hobbies SEPARATOR ', ') 
  FROM peoples_hobbies 
  WHERE person_id = 5 
  GROUP BY 'all';

[1]: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html # function_group-concat

해설 (1)

대체 구문을 연결, 여러 개별 행뿐만 #

  • 경고: 이 post 는 무리는너희들이 hungry.*

주어진:

내가 내 자신을 com/downloads/global/corporate/iar/esg_prosupport. 이므로, 여러 개별 rows-instea * 일부 그룹 및 의 연결 따랐던 현장.

39, s say you have a table let& 침입탐지시스템 (ids), 그들의 이름과 제품 가격:

+------------+--------------------+-------+
| product_id | name               | price |
+------------+--------------------+-------+
|         13 | Double Double      |     5 |
|         14 | Neapolitan Shake   |     2 |
|         15 | Animal Style Fries |     3 |
|         16 | Root Beer          |     2 |
|         17 | Lame T-Shirt       |    15 |
+------------+--------------------+-------+

그럼 당신은 선사하고 있는 일부 슈만시 돌림무늬 ajax 로 오프하도록 확인란 정리되어 있습니다.

네 배고픈 히포 (hippo) 사용자가 '13, 15, 16'. 오늘 애디슨에게 위한 디저트 없습니다.

찾기:

39 의 오더할 함께 한 줄 수 있는 방법을 요약하십시오 너회의 user& 순결케 mysql.

해결책:

'GROUP_CONCAT 사용하여' 를 [이 '의' 조항을] (http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html # function_in):

mysql> SELECT GROUP_CONCAT(name SEPARATOR ' + ') AS order_summary FROM product WHERE product_id IN (13, 15, 16);

어떤 출력입니다:

+------------------------------------------------+
| order_summary                                  |
+------------------------------------------------+
| Double Double + Animal Style Fries + Root Beer |
+------------------------------------------------+

보너스 해결책:

스케쳐내 [' (SUM)'] 에서 총 가격 역시 토스 (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html # function_sum):

mysql> SELECT GROUP_CONCAT(name SEPARATOR ' + ') AS order_summary, SUM(price) AS total FROM product WHERE product_id IN (13, 15, 16);
+------------------------------------------------+-------+
| order_summary                                  | total |
+------------------------------------------------+-------+
| Double Double + Animal Style Fries + Root Beer |    10 |
+------------------------------------------------+-------+

PS: # 39 사과를 don& 없는 경우, [ui_policytable_java_spe_policy 인앤아웃] (http://www.in-n-out.com) 있다.

해설 (1)

최대 길이는 GROUP_CONCAT 설정하여 값을 변경할 수 있습니다 '' 'group_concat_max_len' 매개변수입니다.

자세한 사항은 의 [MySQL 도쿠만테이션] [1].

[1]: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html # function_group-concat

해설 (0)

39 의 there& 그룹 전체 기능, &lt ";;;;; a href = http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html # function_group-concat&quot &gt GROUP_CONCAT&lt /a&gt.

해설 (0)

저의 경우는 내가 가진 행 id, 그렇지 않으면, 그 결과, 나라를 위해 필요한 것은 迈向 챨 인코딩되지 salesforce. 이진 형식:

SELECT CAST(GROUP_CONCAT(field SEPARATOR ',') AS CHAR) FROM table
해설 (0)

Mysql 사용하여 (5.6.13) 및 대입 연산자입니다 세션이고 가변으로 다음과 같은

SELECT @logmsg := CONCAT_ws(',',@logmsg,items) FROM temp_SplitFields a;

그런 다음 얻을 수 있다.

test1,test11
해설 (2)

난 이미 제가 더 복잡한 쿼리하지 '외부' 에서 발견되는 사용해야 했습니다 GROUP_CONCAT 쿼리하지 afaq 사용할 수 있습니다.

당초 쿼리하지:

SELECT DISTINCT userID 
FROM event GROUP BY userID 
HAVING count(distinct(cohort))=2);

내파:

SELECT GROUP_CONCAT(sub.userID SEPARATOR ', ') 
FROM (SELECT DISTINCT userID FROM event 
GROUP BY userID HAVING count(distinct(cohort))=2) as sub;

누군가 이 도움이 될 수 있다.

해설 (0)

이거 드세요.

DECLARE @Hobbies NVARCHAR(200) = ' '

SELECT @Hobbies = @Hobbies + hobbies + ',' FROM peoples_hobbies WHERE person_id = 5;
해설 (1)

여기서 '누군가' 을 (를 사용하는 방법에 대해 보았으매 group_concat 이 들어 올려 서브케리 - "' I.* 선택, (일부 GROUP_CONCAT 우승 = f (userid) 를 여기서 프리양미드 이드리드) 를 이드리스트 내가 항목 중에서 여기서 이드리드 조메이드 = $ "' 그래서 '이 아닌' GROUP_CONCAT 랩할 서브케리 내부의 사용해야 합니다.

해설 (1)

우리는 두 가지 방법을 MySql 에서 열을 연결

select concat(hobbies) as `Hobbies` from people_hobbies where 1

또는

select group_concat(hobbies) as `Hobbies` from people_hobbies where 1
해설 (0)