2017-02-27 5 views
0

같은 테이블에서 100 명의 다른 사용자를 얻으려는 경우 아래와 같이 100 가지의 다른 쿼리를 만들어야합니다. 예를 들어 세 가지 쿼리 만 표시하고 있지만 내 의미를 알 수 있습니다.이러한 mysql 쿼리를 압축하는보다 효율적인 방법이 있습니까?

같은 테이블에서 원하는만큼 많은 사용자를 확보하는 것이 더 효율적인 방법인지 궁금합니다. 중요한 것은 각 사용자에게 고유 한 핸들을 제공해야한다는 것입니다. 예를 들면. $ matrix_user_id_2, $ matrix_user_id_3, $ matrix_user_id_4. 그 일을 계속하려면 어떻게해야합니까?

$find_sponsor_2 = $db->prepare("SELECT user_id, filled_positions FROM matrix_2 WHERE user_id = :user_id"); 
$find_sponsor_2->bindValue(':user_id', 2); 
$find_sponsor_2->execute(); 
$result_sponsor_2 = $find_sponsor_2->fetchAll(PDO::FETCH_ASSOC); 
if(count($result_sponsor_2) > 0) { 
    foreach($result_sponsor_2 as $row) { 
    $matrix_user_id_2   = $row['user_id']; 
    $filled_positions_2   = $row['filled_positions']; 
    } 
} else { 
    $errors[] = 'User Id 2 not found in Matrix.'; 
} 

$find_sponsor_3 = $db->prepare("SELECT user_id, filled_positions FROM matrix_2 WHERE user_id = :user_id"); 
$find_sponsor_3->bindValue(':user_id', 3); 
$find_sponsor_3->execute(); 
$result_sponsor_3 = $find_sponsor_3->fetchAll(PDO::FETCH_ASSOC); 
if(count($result_sponsor_3) > 0) { 
    foreach($result_sponsor_3 as $row) { 
    $matrix_user_id_3   = $row['user_id']; 
    $filled_positions_3   = $row['filled_positions']; 
    } 
} else { 
    $errors[] = 'User Id 3 not found in Matrix.'; 
} 

$find_sponsor_4 = $db->prepare("SELECT user_id, filled_positions FROM matrix_2 WHERE user_id = :user_id"); 
$find_sponsor_4->bindValue(':user_id', 4); 
$find_sponsor_4->execute(); 
$result_sponsor_4 = $find_sponsor_4->fetchAll(PDO::FETCH_ASSOC); 
if(count($result_sponsor_4) > 0) { 
    foreach($result_sponsor_4 as $row) { 
    $matrix_user_id_4   = $row['user_id']; 
    $filled_positions_4   = $row['filled_positions']; 
    } 
} else { 
    $errors[] = 'User Id 4 not found in Matrix.'; 
} 

답변

0

1 개의 검색어를 사용하여 모든 정보를 얻을 수 있습니다. 왜 이렇게하지 않니?

SELECT user_id, filled_positions FROM matrix_2 WHERE user_id in (2,3,4) // your ids here 

그런 다음 결과 집합을 반복하여 어떤 것이 존재하고 어떤 것이 아닌지를 확인할 수 있습니다.

+0

전체 쿼리를 보여 주시겠습니까? 도움이 될 것입니다. 감사. – tom

+0

@tom이 쿼리와'print_r' 데이터 세트를 쓰면, 내가 무슨 말을하고 있는지 알게 될 것입니다. –

+0

미안합니다. 나는 그것을 정확하게 이해해서는 안됩니다. 전체 쿼리를 보여 주면 좋을 것입니다. – tom