In Mysql, quando si esegue un'istruzione SQL selezionata, esiste un ordine predefinito se non si include una clausola di ordinamento, come annullare l'ordinamento predefinito? Basta aggiungere DESC
?Come invertire l'ordinamento predefinito in Mysql?
risposta
Non esiste un ordine garantito se non si specifica una clausola ORDER BY, quindi il "reverse dell'ordine predefinito" non è definito.
Per coloro che preferiscono le risposte con prove per eseguire il backup delle affermazioni fatte: https://stackoverflow.com/questions/8746519/sql-what-is-the-default-order-by-of-queries – Patrick
Penso che sarebbe meglio servire specificando l'ordine che si desidera effettivamente. Le tabelle, per loro natura, non hanno ordine. Probabilmente viene visualizzato solo nell'ordine in cui sono state inserite le righe, sebbene non ci sia alcuna garanzia che rimanga in tale ordine.
Le probabilità sono, probabilmente vuole solo aggiungere questo:
ORDER BY id DESC
... poiché la maggior parte del tempo, la gente usa un campo di incremento automatico chiamato "id"
Ma che peccato, non c'è un campo "Id" nella tabella. – Steven
Ma se non esiste un campo Id o equivalente, l'ordine è significativo? – pavium
Penso che l'ordine di default in cui sono state inserite le righe, l'ordine di default è "First inserted, last out". Voglio cambiarlo in "First inserted, first out". – Steven
Se si desidera che il i dati per uscire coerentemente ordinati, è necessario utilizzare ORDER BY
seguito dalla colonna (s) che si desidera ordinare la query. ASC
è l'impostazione predefinita, quindi non è necessario specificarlo. IE:
ORDER BY your_column
... è l'equivalente di:
ORDER BY your_column ASC
ASC/DESC è su una base per colonna. Ad esempio:
ORDER BY first_column, second_column DESC
... significa che la query ordinerà del risultato come una combinazione usando l'first_column
in ordine crescente, second_column
in ordine decrescente.
L'ordine di cui ho bisogno è l'ordine inverso in cui sono state inserite le righe. "Prima inserito, prima uscita". – Steven
@Steven: Dovrai fornire l'output di 'DESCRIVERE [il nome della tua tabella qui]' dal tuo database prima che io possa suggerire cosa usare. Se si dispone di una colonna chiave autonome principale, ordinare "ASC".La prossima cosa migliore sarebbe una colonna date_created, usando il datatype datetime. Di nuovo, 'ASC'. –
A meno che non sia possibile specificare un nome di colonna in una clausola ORDER BY
, non è possibile utilizzare DESC
e sarà necessario ricorrere a trucchi che prevedono LIMIT
per visualizzare gli ultimi record.
Questo sarebbe insoddisfacente, penso.
È possibile impostare un contatore nei campi di risultato e una sorta di utilizzarlo:
SELECT *, @counter := @counter + 1 AS 'counter' FROM tableName, (SELECT @counter := 0) r ORDER BY counter DESC
penso che funzionerà come si desidera.
SI !! Funziona ! Grazie ! Hai risposto perfettamente alla domanda. – Jerry
@Jerry Ma questo è esattamente il contrario di qualsiasi ordine in cui sono state richiamate le righe, che non ha alcuna connessione garantita con l'ordine di implementazione, che a sua volta non ha alcuna garanzia di essere qualcosa in particolare. Se vuoi un ordine garantito, deve essere nei dati. * Inoltre * non ci sono garanzie per le query che impostano e leggono una variabile, quindi questa query ha un comportamento non definito. Per * una certa build recente * di 5,7 persone a Percona che ha esaminato l'implementazione ha visto che un certo uso di variabili nelle espressioni 'case' (* non * come questo) fornisce alcuni comportamenti prevedibili. Fino a. – philipxy
- 1. Schema predefinito in MySQL
- 2. Come invertire System.loadLibrary in Java
- 3. Come recuperare/ricreare il database predefinito 'mysql' di mysql
- 4. Perché MySQL usa latin1_swedish_ci come predefinito?
- 5. Come impostare MySQL come database predefinito in Rails 3?
- 6. Come invertire String.fromCharCode?
- 7. cambia il motore predefinito mysql in innodb
- 8. Come posso invertire un elenco in python?
- 9. Come invertire un grafico in tempo lineare?
- 10. Come invertire i colori in LESS
- 11. Come invertire le tuple in Python?
- 12. Come invertire a bit AND (&) in C?
- 13. Come invertire un dizionario in Python?
- 14. Come invertire un elenco in Java?
- 15. Come invertire le parole in una stringa?
- 16. Come invertire i dati in NSMutableArray?
- 17. Come invertire la selezione sort
- 18. Come invertire l'output di sed?
- 19. Contains(), come invertire usando lambda
- 20. Invertire una parola in Vim
- 21. invertire una stringa in Python
- 22. Come invertire una lista collegata?
- 23. come invertire __m128 negli interi
- 24. valore predefinito di GUID in per una colonna in mysql
- 25. MySQL ordine predefinito dipende da dove
- 26. MySQL - valore predefinito per TIMESTAMP (3)
- 27. Ripristina il campo MySQL sul valore predefinito
- 28. Valore predefinito per il campo ordine in mysql
- 29. Linked lista ricorsiva invertire
- 30. Come invertire l'asse y su un grafico
Duplicato: http://stackoverflow.com/questions/1793147/sql-best-practice-to-deal-with-default-sort-order/1793162#1793162 –
Non esiste un "ordine predefinito" quindi non puoi "invertirlo". –