모든 데이터를 충실하게 정규화 했으므로 출력을 위해 3NF 행을 단일 행으로 결합하는 데 문제가 있습니다. 지금까지 서버 측 코딩으로이 작업을 해왔지만 여러 가지 이유로 여러 행에 관련된 모든 행을 선택하고 MySQL의 모든 행을 하나의 행에 결합해야합니다.3NF mysql 테이블에서 여러 행의 내용 결합
이렇게 시도하고 설명하기 위하여 :
나는 3 개의 테이블이있다.
- 카테고리
- 기사
- CategoryArticles_3NF
카테고리는 그것은 은 articleID 구성되는 기사 테이블에서 기사의 수를 포함 할 수있는 등 카테고리 ID + 제목, 설명을 포함 + 내용을 담을 텍스트 필드. 범주 기사 테이블은 두 테이블을 연결하는 데 사용되므로 CategoryID 및 ArticleID을 모두 포함합니다.
이제 범주 레코드를 선택하고 연결하는 CategoryArticles_3NF 테이블을 통해 Articles 테이블을 조인하면 결과는 해당 범주에 포함 된 각 기사에 대해 별도의 행이됩니다. 문제는 각 범주에 대해 하나의 행을 출력하고 내용이 인 내용이 모두 개 이내 인 것입니다.
어리석은 요청 인 것처럼 들린다면 그것은 그렇기 때문입니다. 나는 기사를 문제를 설명하는 좋은 방법으로 사용하고있다. 내 데이터는 실제로 다소 다릅니다.
어쨌든 - 이것은 'GROUP_CONCAT'콘텐츠 필드 함께 그룹에 문을 사용하는 것입니다 달성하기 위해 내가 볼 수있는 유일한 방법 - 이것에 문제가이 반환 할 수있는 데이터의 양에 한계가 있다는 것입니다, 그리고 훨씬 더 많은 것을 처리 할 수 있어야합니다.
아무에게도 어떻게 할 수 있습니까?
감사합니다.
하지만이 특정 문제에 대해 나는 필요 그것은 MySQL을 통해 이루어졌습니다. 공유 서버에서 실행 중이므로 group_concat_max_len 또는 max_allowed_packet 설정을 변경할 수있는 권한이 없습니다. 데이터는 아마도 약 100kb를 초과 할 수 없습니다. –
나는 당신이 당신의 세션에 대해서만 group_concat_max_len을 설정할 수 있다고 믿는다. "SET SESSION group_concat_max_len = <당신의 가치는 여기>"시도하십시오. –
맞습니다. 결국 시간이 중요한 요소 였기 때문에 MySQL보다는 서버 측 코딩을 사용했습니다. 성능에 문제가 있었지만 문제를 처리하고 싶지는 않았습니다 ... 그러나 눈에 띄지는 않을 것입니다. 이 크기의 앱. –