2011-08-17 22 views
6

Eventuali duplicati:
Mysql Offset Infinite rowsMYSQL ottenere tutti i risultati, ma prima

Sto cercando di ottenere tutti i risultati di una query ma non il primo, ho il seguente, ma il suo dono un errore, per favore aiuto; Grazie.

SELECT DISTINCT `memberID` FROM `discusComments` 
WHERE `topicID` = 4 ORDER BY `id` DESC OFFSET 1 
+1

quale messaggio di errore si ottiene? –

+3

Vedere http://stackoverflow.com/questions/255517/mysql-offset-infinite-rows. Impossibile usare 'OFFSET' senza' LIMIT'. – Rob

risposta

13
SELECT DISTINCT `memberID` 
FROM `discusComments` 
WHERE `topicID` = 4 
ORDER BY `id` 
DESC limit 1,x 

dove x è un numero abbastanza grande da contenere tutti i record.

oppure utilizzare, anziché x, 18446744073709551615, ovvero il valore massimo di bigint senza segno.

2

Ignora la prima riga quando si ricevono i risultati nell'applicazione. È molto più elegante rispetto all'utilizzo di un brutto interrogazione come:

SELECT * FROM my_table LIMIT 1, 18446744073709551615 

Ottenere una riga in più non sarà davvero male le prestazioni.

+0

Non sarei d'accordo è meglio solo restituire la prima riga quando la domanda ha chiesto di rimuoverlo ... è così pulito come metodi per rimuovere la prima riga. Inoltre ci sono molti casi in cui i dati delle righe potrebbero essere abbastanza grandi da non volerli trasportare dal server all'applicazione, ad es. dati memorizzati in un BLOB – Barry

Problemi correlati