나는 이틀 동안 나의 질문에 대한 답을 연구 해왔다. 그리고 나는 내가 무엇을 찾고 있는지를 정확하게 기술하는 방법을 모르기 때문에 어떤 행운도 없었을 것이다. 내가 사용해야 할 방법으로결과의 숫자에 따른 MySQL concat
기본적으로 내 데이터베이스에는 tblCounties (ID, County_vc), 다른 tblOrganizations (ID, Organization_vc)라는 두 개의 테이블이 있습니다. 나는 jnCountyOrg (Org_fk_id, County_fk_id)라고 불리는 두개의 테이블을 연결한다. 한 조직은 최소한 한 카운티에 속할 수 있으며 최대 세 카운티까지 소속 될 수 있습니다. 내가 PHP를 사용하여 내 선택 쿼리를 통해 while 루프를 할 때, 에코는 다음과 같이 제대로 결과입니다 :
CountyName1CountyName2CountyName3 내가로 MYSQL_ASSOC와 mysql_fetch_assoc를 사용하여 시도
에게.
결과를 이렇게 형식화하고 싶습니다.
하나의 카운티 만 조직과 연결되어있는 경우 "xxx 카운티"입니다.
조직과 관련된 두 카운티가있는 경우 "xxx 및 xxx 카운티"를 표시합니다.
마지막으로 세 개의 카운티 (최대치)가 조직과 연결되어 있으면 "xxx, xxx 및 xxx 카운티"입니다.
CASE 문을 사용하여 SQL에서이 작업을 수행 할 것인지 또는 데이터베이스에서 쿼리 한 후 PHP를 사용하여 내 결과의 형식을 지정해야하는지 혼란 스럽습니다. 어떤 도움이라도 대단히 감사하겠습니다.
PHP에서 더 나은 방법입니다. 그것은 표시 일입니다 - SQL은 일반적으로 그냥 원시 데이터에 사용해야합니다. –
@MarcB와의 합의 - SQL에서는 가능하지만 총 PITA는 PHP에서하는 것보다 효율적이지 않을 수 있습니다. – DaveRandom
[here] (http://sqlfiddle.com/#!2/bd62c/1)에서는 MySQL이 아닌 PHP에서이 작업을 수행해야하는 이유를 설명합니다. 그리고 그 엄청나게 복잡한 메커니즘조차도 카운티 이름에는'@ '가 포함될 수 없다고 가정합니다. 더 간단한 방법이있을 수 있지만 하나는 생각할 수 없다. MySQL의 문자열 조작 함수는 많이 필요하다. – DaveRandom