sql >> Database >  >> RDS >> Mysql

Hoe kan ik het aantal rijen tellen dat een MySQL-query heeft geretourneerd?

Totaal aantal rijen in een zoekresultaat krijgen...

U kunt het resultaat gewoon herhalen en tellen. Je zegt niet welke taal of clientbibliotheek je gebruikt, maar de API biedt wel een mysql_num_rows functie die u het aantal rijen in een resultaat kan vertellen.

Dit wordt bijvoorbeeld in PHP weergegeven als de mysqli_num_rows functie. Aangezien je de vraag hebt aangepast om te vermelden dat je PHP gebruikt, is hier een eenvoudig voorbeeld met mysqli-functies:

$link = mysqli_connect("localhost", "user", "password", "database");

$result = mysqli_query($link, "SELECT * FROM table1");
$num_rows = mysqli_num_rows($result);

echo "$num_rows Rows\n";

Een telling van rijen krijgen die aan bepaalde criteria voldoen...

Gebruik gewoon COUNT(*) - zie Rijen tellen in de MySQL-handleiding. Bijvoorbeeld:

SELECT COUNT(*) FROM foo WHERE bar= 'value';

Totaal aantal rijen ophalen wanneer LIMIT wordt gebruikt...

Als u een LIMIT-clausule had gebruikt, maar wilt weten hoeveel rijen u zonder deze clausule zou krijgen, gebruikt u SQL_CALC_FOUND_ROWS in uw zoekopdracht, gevolgd door SELECT FOUND_ROWS( );

SELECT SQL_CALC_FOUND_ROWS * FROM foo
   WHERE bar="value" 
   LIMIT 10;

SELECT FOUND_ROWS();

Voor zeer grote tabellen zal dit niet bijzonder efficiënt zijn, en u kunt beter een eenvoudigere zoekopdracht uitvoeren om een ​​telling te verkrijgen en deze in de cache op te slaan voordat u uw zoekopdrachten uitvoert om pagina's met gegevens te krijgen.



  1. Aankondiging van repmgr 2.0RC2

  2. T-SQL XOR-operator

  3. Hoe verander ik de standaardtaal voor SQL Server?

  4. "Kan de trigger niet laten vallen" Fout bij het verwijderen van een aanmeldingstrigger? Probeer dit.