Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso contare il numero di righe restituite da una query MySQL?

Ottenere le righe totali in un risultato di query...

Potresti semplicemente ripetere il risultato e contarli. Non dici quale lingua o libreria client stai utilizzando, ma l'API fornisce un mysql_num_rows funzione che può dirti il ​​numero di righe in un risultato.

Questo è esposto in PHP, ad esempio, come mysqli_num_rows funzione. Poiché hai modificato la domanda per menzionare che stai usando PHP, ecco un semplice esempio usando le funzioni mysqli:

$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";

Ottenere un conteggio delle righe che soddisfano alcuni criteri...

Usa COUNT(*) - vedi Conteggio delle righe nel manuale MySQL. Ad esempio:

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

Ottieni le righe totali quando viene utilizzato LIMIT...

Se hai utilizzato una clausola LIMIT ma vuoi sapere quante righe otterresti senza di essa, usa SQL_CALC_FOUND_ROWS nella tua query, seguito da SELECT FOUND_ROWS( );

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

SELECT FOUND_ROWS();

Per tabelle molto grandi, questo non sarà particolarmente efficiente e faresti meglio a eseguire una query più semplice per ottenere un conteggio e memorizzarlo nella cache prima di eseguire le query per ottenere pagine di dati.