sql >> データベース >  >> RDS >> Mysql

PDOの制限を考慮せずに、見つかった行の総数を取得するにはどうすればよいですか?

    MySQLのみAFAIK:

    $r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM locations WHERE area=:area LIMIT $start,10");
    $r->execute($fields);
    
    var_dump($r->fetchAll());
    
    var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));
    

    もちろん、データベースサーバーにとっては、すべてのレコードを1回クエリするのと同じくらい重いです。 MySQL以外で使用する場合は、もちろん、このクエリの方が allの行数を取得するよりも優れています。 記録:

    $r=$db->prepare("SELECT COUNT(*) FROM locations WHERE area=:area");
    $r->execute($fields);
    $count = $r->fetch(PDO::FETCH_COLUMN);
    echo $count;
    



    1. PHPは、MySQLクライアントよりもクエリの実行に90倍の時間がかかります

    2. Pythonを使用したデータエンジニアのインタビューの質問

    3. MS AccessとMySQLの間でデータを同期するための最良の方法は何ですか?

    4. 一意の値の数を数える