2012-04-10 12 views
10

Hey Guyz Questo è possibile per ottenere il numero totale di righe conta con il limite di compensazioneQuesto è possibile per ottenere il numero totale di righe conta con il limite di compensazione

Scenario

SELECT * FROM users limit 0,5; 

questa query contiene 300 record, ma la il problema è se io chiamo questa query con offset il risultato sarà mostrato solo 5 record e non voglio scrivere una query in due volte. uno per il limite di paging e altri per un totale non di conteggio record ...

Non voglio questo

SELECT * FROM users limit 0,5; // paging 
SELECT count(*) FROM users; // count 

devo fondere questo query o aiuta sono sicuramente apprezzato

+0

1) Perché non eseguirli separatamente? 2) Hai una clausola 'limite' in più nella query' count'? –

+1

Questo è il breve esempio di query e ho un'enorme query sul motivo per cui non voglio scrivere una query due volte @MostyMostacho –

risposta

7

È possibile utilizzare SQL_CALC_FOUND_ROWS come questo

SELECT SQL_CALC_FOUND_ROWS * FROM users limit 0,5; 

ottiene il conteggio delle righe prima di applicando qualsiasi clausola LIMIT. Essa ha bisogno di un'altra query per recuperare i risultati, ma che query può essere semplicemente

SELECT FOUND_ROWS() 

e, quindi, non c'è bisogno di ripetere la query complicata.