2016-10-18 1 views
0

특정 회사에 연결된 사용자의 수는 일련 번호 필드에서입니다.일련 번호가 지정된 ID 필드의 총 사용자 수

TABLE_USER 
user_id 
user_name 
user_companies <- Serialized id field 

나는 이런 식으로 값을 얻을 수 INT 필드가있는 경우 :

SELECT * FROM table_user WHERE user_companies = 1 

하지만, 어떻게 직렬화 필드에서 전체 사용자를 얻을 수 있습니까? 모든 예는 데이터베이스를 사용하는 방법이 아니라고

TKS 모든

+0

당신은 정말로 이것을 원하지 않습니다. 데이터베이스를 스크랩하고 정규화 된 데이터 구조를 사용하십시오. 아니면 할 수 없다면 PHP – WillardSolutions

+0

@Eat에서이 작업을 수행해야합니다. 물론 PHP에서해야하지만 예제가 있습니다 :-) –

+0

무엇을 시도 했습니까? PHP의'unserialize()'함수를 보셨습니까? http://php.net/manual/en/function.unserialize.php – WillardSolutions

답변

1

을 감상 할 수있다. 이상적으로 사용자 및 회사와 조인 된 테이블이 있어야합니다. 가입 할 수있는 새 테이블을 선택하고, 나열 해제하고 삽입하는 스크립트를 실행하는 것은 그리 어렵지 않습니다.

// SELECT * FROM table_user 

$company_id = 1; 

while($row = your_fetch_array()) { 
    if(in_array($company_id, unserialize($row['user_companies'])) { 
     $results[] = $row; 
    } 
} 

결과 배열의 직렬화를 회사하려면 : :

while($row = your_fetch_array()) { 
    $companies = unserialize($row['user_companies']); 

    if(in_array($company_id, $companies) { 
     $results[] = array_merge($row, array('user_companies' => $companies)); 
    } 
} 

당신은 당신의 데이터베이스 또는 API를 언급하지 않습니다를 쿼리 수 있도록 그러나 가정 그게 당신이 PHP에서 그것을해야 할 것입니다 방법 평소와 같이 가져 오십시오.

JSON (여전히 권장하지 않음)을 사용하는 경우 MySQL JSON Functions에서 약간의 마일리지가 발생할 수 있습니다.

관련 문제