여러 MySQL 행을 하나의 필드로 연결할 수 있습니까?
P粉556159786
2023-08-22 14:02:48
<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>하지만 행과 열은 하나만 필요합니다. </p>
<p><strong>원하는 출력: </strong></p>
<pre class="brush:php;toolbar:false;">쇼핑, 낚시, 코딩</pre>
<p>이유는 여러 테이블에서 여러 값을 선택했는데, 모든 조인 후에는 원하는 것보다 더 많은 행이 생기기 때문입니다. </p>
<p>MySQL 문서에서 함수를 찾아보니 <code>CONCAT</code> 또는 <code>CONCAT_WS</code> 함수가 결과 집합을 허용하지 않는 것 같습니다. </p>
<p>여기에 이 작업을 수행하는 방법을 아는 사람이 있나요? </p>
MySQL 버전(4.1)이 지원하는 경우 확인할 수 있습니다
GROUP_CONCAT
. 자세한 내용은 문서를 참조하세요.쿼리문은 다음과 같습니다.
으아아아GROUP_CONCAT
기능을 사용할 수 있습니다:Ludwig가 그의 댓글에서 를 언급했듯이 중복을 피하기 위해
으아악DISTINCT
연산자를 추가할 수 있습니다.Jan이 댓글에서 언급했듯이
를 사용하여 병합하기 전에 값을 정렬할 수도 있습니다. 으아악ORDER BY
:Dag가 그의 댓글에서 언급했듯이 결과에는 1024바이트 제한이 있습니다. 이 문제를 해결하려면 쿼리 전에 다음 쿼리를 실행하세요.
으아악물론 필요에 따라
으아악2048
값을 변경할 수 있습니다. 값을 계산하고 할당하는 방법은 다음과 같습니다.