여러 MySQL 행을 하나의 필드로 연결하는 방법은 무엇입니까?
P粉482108310
2023-08-28 11:10:23
<p><code>MySQL</code>을 사용하여 다음을 수행할 수 있습니다. </p>
<pre class="brush:php;toolbar:false;">peoples_hobbies에서 취미를 선택하세요. WHERE person_id = 5;</pre>
<p><strong>내 결과: </strong></p>
<pre class="brush:php;toolbar:false;">쇼핑
어업
코딩</pre>
<p>하지만 행 1개, 열 1개만 필요합니다. </p>
<p><strong>예상 출력: </strong></p>
<pre class="brush:php;toolbar:false;">쇼핑, 낚시, 코딩</pre>
<p>이유는 여러 테이블에서 여러 값을 선택하고 모든 조인 후에 원하는 것보다 훨씬 많은 행을 얻게 되기 때문입니다. </p>
<p>MySQL Doc에서 함수를 찾아보니 <code>CONCAT</code> 또는 <code>CONCAT_WS</code> 함수가 결과 집합을 허용하지 않는 것 같습니다. </p>
<p>여기에 이 작업을 수행하는 방법을 아는 사람이 있나요? </p>
MySQL 버전(4.1)이 이를 지원하는지
GROUP_CONCAT
확인하세요. 자세한 내용은 문서세부정보를 참조하세요.다음과 같습니다:
으아악GROUP_CONCAT
을 사용할 수 있습니다.Ludwig가 그의 의견에서 언급했듯이 a> 중복을 피하기 위해
으아악DISTINCT
DISTINCT 연산자를 추가할 수 있습니다.Jan이 댓글에서 언급한 것처럼 a>
으아악ORDER BY
ORDER BY를 사용하여 내파하기 전에 값을 정렬할 수도 있습니다.Dag가 자신의 댓글에서 언급했듯이 결과는 1024바이트 제한이 있습니다. 이 문제를 해결하려면 다음 쿼리를 먼저 실행하세요.
으아악물론, 원한다면
으아악2048
2048을 변경할 수 있습니다. 값 계산 및 할당: