Dans Mysql, lorsque vous exécutez une instruction SQL select, il existe un ordre par défaut si vous n'incluez pas de clause de tri, comment inverser l'ordre par défaut? Il suffit d'ajouter DESC
?Comment annuler la commande par défaut dans Mysql?
Répondre
Il n'y a pas de commande garantie si vous ne spécifiez pas de clause ORDER BY, ainsi le 'reverse de l'ordre par défaut' est indéfini.
Pour ceux qui préfèrent des réponses avec des preuves pour sauvegarder les revendications faites: https://stackoverflow.com/questions/8746519/sql-what-is-the-default-order-by-of-queries – Patrick
Je pense que vous seriez mieux servi en spécifiant la commande que vous voulez réellement. Les tables, par leur nature, n'ont pas d'ordre. Il est probablement juste affiché dans l'ordre dans lequel les lignes ont été insérées - bien qu'il n'y ait aucune garantie qu'il restera dans cet ordre.
Les chances sont, vous voulez probablement juste ajouter ceci:
ORDER BY id DESC
... puisque la plupart du temps, les gens utilisent un champ auto-incrémentée appelé « id »
Mais quel dommage, il n'y a pas de champ "Id" dans la table. – Steven
Mais s'il n'y a pas de champ Id, ou équivalent, l'ordre est-il significatif? – pavium
Je pense que l'ordre par défaut dans lequel les lignes ont été insérées, l'ordre par défaut est "Première insertion, dernière sortie". Je veux le changer en "Premier inséré, premier sorti". – Steven
Si vous voulez que la données à sortir systématiquement commandé, vous devez utiliser ORDER BY
suivi de la colonne (s) que vous souhaitez commander la requête par. ASC
est la valeur par défaut, vous n'avez donc pas besoin de le spécifier. IE:
ORDER BY your_column
... est l'équivalent de:
ORDER BY your_column ASC
ASC/DESC est sur une base par colonne. Par exemple:
ORDER BY first_column, second_column DESC
... signifie que la requête triera ResultSet comme une combinaison en utilisant le first_column
dans l'ordre croissant, second_column
dans l'ordre décroissant.
L'ordre dont j'ai besoin est l'ordre inverse dans lequel les lignes ont été insérées. "Premier inséré, premier sorti". – Steven
@Steven: Vous devrez fournir la sortie de 'DESCRIBE [votre nom de table ici]' depuis votre base de données avant de pouvoir suggérer quoi utiliser. Si vous avez une colonne de clé primaire autonumber - commandez par elle 'ASC'.La meilleure chose à faire serait une colonne date_created, utilisant le datatype datetime. Encore une fois, 'ASC'. –
Sauf si vous pouvez spécifier un nom de colonne dans une clause ORDER BY
, vous ne pouvez pas utiliser DESC
et vous devrez recourir à des astuces impliquant LIMIT
pour voir les derniers enregistrements.
Ce serait insatisfaisant, je pense.
Vous pouvez définir un compteur dans vos champs de résultat et de trier l'utiliser:
SELECT *, @counter := @counter + 1 AS 'counter' FROM tableName, (SELECT @counter := 0) r ORDER BY counter DESC
Je pense que cela va fonctionner comme vous le souhaitez.
OUI !! Ça marche ! Merci ! Vous avez parfaitement répondu à la question. – Jerry
@Jerry Mais c'est exactement l'inverse de l'ordre dans lequel les lignes ont été récupérées, qui n'a aucune connexion garantie avec l'ordre d'implémentation, ce qui à son tour ne garantit rien de particulier. Si vous voulez une commande garantie, elle doit figurer dans les données. * Aussi, il n'y a aucune garantie pour les requêtes qui définissent et lisent une variable, donc cette requête a un comportement indéfini. Pour * une certaine construction récente * de 5,7 personnes à Percona qui a regardé l'implémentation a vu que certaines utilisation de variables dans des expressions 'case' (* pas * comme ceci) donne un certain comportement prévisible. Jusqu'à. – philipxy
- 1. annuler la commande supprimée dans bash
- 2. MySql commande conditionnelle par
- 3. Comment annuler la commande d'un autre utilisateur dans TFS?
- 4. Commande MySql par problème
- 5. Commande MySQL par on varchar
- 6. MYSQL union ou commande par?
- 7. Texte par défaut dans la liste déroulante
- 8. Commande MySQL par COUNT DISTINCT
- 9. MySQL Valeur par défaut DATETIME
- 10. Commande MySQL par rand() groupée par jour
- 11. MySQL group_concat commande par UTF8
- 12. Commande d'ajout d'une contrainte par défaut
- 13. comment annuler l'événement par jquery
- 14. Passer un paramètre par défaut pour la commande "rails generate"
- 15. Question sur ActiveRecord # default_scope méthode et la commande par défaut
- 16. valeur par défaut de GUID dans une colonne dans mysql
- 17. Comment annuler la liaison ObjectDataSource?
- 18. WPF DataGrid: Annuler la sélection de la première ligne par défaut
- 19. Comment télécharger la procédure de paiement par défaut dans magento
- 20. par défaut MySQL vs Ruby méthode initialize
- 21. combien plus performant est sphinx que la recherche par défaut MySQL par défaut?
- 22. Mysql assignant par défaut cause l'erreur
- 23. déclaration mysql union avec commande par
- 24. Comment faire pour annuler l'opération INSERT dans le déclencheur MySql?
- 25. Comment changer le mot de passe root MySQL par défaut?
- 26. asp.net - annuler la session
- 27. Annuler une commande de ligne Datagrid
- 28. Comment autoriser l'utilisateur à annuler ma commande AutoCAD
- 29. Les valeurs par défaut pour COUNT dans MySQL
- 30. Les paramètres mysql par défaut dans RDS sont-ils sains?
Dupliquer: http://stackoverflow.com/questions/1793147/sql-best-practice-to-deal-with-default-sort-order/1793162#1793162 –
Il n'y a pas de «commande par défaut» donc vous ne pouvez pas "inverser". –