> 데이터 베이스 > MySQL 튜토리얼 > PHP에서 여러 MySQL 쿼리를 효율적으로 실행하고 결합하려면 어떻게 해야 합니까?

PHP에서 여러 MySQL 쿼리를 효율적으로 실행하고 결합하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-04 09:06:12
원래의
428명이 탐색했습니다.

How Can I Efficiently Execute and Combine Multiple MySQL Queries in PHP?

PHP/MySQL에서 여러 쿼리 실행

문제:

여러 개의 독립적인 쿼리를 실행하고 PHP와 MySQL을 사용하여 결과를 하나의 응집력 있는 결과로 결합하면 도전하세요.

해결책:

1. mysqli_multi_query()

  • SQL 문을 세미콜론(;)으로 연결합니다.
  • mysqli_multi_query()를 사용하여 여러 쿼리를 실행합니다.
  • 결과를 저장합니다. 다음을 사용하여 각 쿼리의 mysqli_store_result().
  • 각 결과 세트를 반복하고, 데이터를 가져오고, 필요한 처리를 수행합니다.

예:

// establish MySQL connection
$link = mysqli_connect("server", "user", "password", "database");

// define multiple queries
$query = "CREATE VIEW current_rankings AS SELECT * FROM main_table WHERE date = X;";
$query .= "CREATE VIEW previous_rankings AS SELECT rank FROM main_table WHERE date = date_sub('X', INTERVAL 1 MONTH);";
$query .= "CREATE VIEW final_output AS SELECT current_rankings.player, current_rankings.rank as current_rank LEFT JOIN previous_rankings.rank as prev_rank ON (current_rankings.player = previous_rankings.player);";
$query .= "SELECT *, @rank_change = prev_rank - current_rank as rank_change from final_output;";

// execute multiple queries
if (mysqli_multi_query($link, $query)) {
    // loop through each result set
    do {
        if ($result = mysqli_store_result($link)) {
            // fetch data from each result set
            while ($row = mysqli_fetch_array($result)) {
                // process the data...
            }
            // free result set memory
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($link));
} else {
    // handle query execution error
}
로그인 후 복사

2. 쿼리 분리

  • mysqli_query()를 사용하여 각 쿼리를 별도로 실행합니다.
  • 결과를 임시 테이블이나 변수에 저장합니다.
  • 필요에 따라 결과를 결합합니다. 더 나아가 처리 중입니다.

예:

// establish MySQL connection
$link = mysqli_connect("server", "user", "password", "database");

// execute first query
$query1 = "Create temporary table A select c1 from t1";
$result1 = mysqli_query($link, $query1) or die(mysqli_error());

// execute second query
$query2 = "select c1 from A";
$result2 = mysqli_query($link, $query2) or die(mysqli_error());

// fetch data from second query
while ($row = mysqli_fetch_array($result2)) {
    // process the data...
}
로그인 후 복사

위 내용은 PHP에서 여러 MySQL 쿼리를 효율적으로 실행하고 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿