dans MySQL, lorsque vous exécutez une instruction SELECT SQL, il existe une commande par défaut si vous n'incluez pas une clause de tri. Comment puis-je inverser la commande par défaut? Il suffit d'ajouter Desc code>? P>
5 Réponses :
Il n'y a pas de commande garantie si vous ne spécifiez pas de clause de commande par clause, le «inverse de l'ordre par défaut» est indéfini. P>
Pour ceux qui préfèrent les réponses avec des preuves pour sauvegarder les revendications formulées: Stackoverflow.com/Questtions/8746519/...
Je pense que vous seriez mieux servi en spécifiant l'ordre que vous voulez réellement. Les tables, de par leur nature, n'ont aucune commande. Il est probablement simplement 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.
chances que ce soit, vous voulez probablement simplement ajouter ceci: P>
ORDER BY id DESC
Mais quelle pitié, il n'y a pas de champ "id" dans la table.
Mais s'il n'y a pas de champ d'identification, ni équivalent, la commande est-elle significative?
Je pense que l'ordre par défaut dans lequel les lignes ont été insérées, l'ordre par défaut est "d'abord inséré, du dernier". Je veux le changer en "d'abord inséré, d'abord".
S'il n'y a pas d'horodatage logique ni d'une sorte de champ d'incrément, vous disposez des informations insuffisantes disponibles pour déterminer l'ordre historique des insertions.
Si vous souhaitez que les données sortent systématiquement commandées, vous devez utiliser commander par code> suivi de la (s) colonne (s) que vous souhaitez commander la requête par.
ASC code> est la valeur par défaut, vous n'avez donc pas besoin de la spécifier. IE:
ORDER BY first_column, second_column DESC
L'ordre dont j'ai besoin est l'ordre inverse dans lequel les rangées ont été insérées. "Premier inséré, premier sorti".
@Steven: Vous devrez fournir la sortie de décrire [votre nom de table ici] code> dans votre base de données avant de pouvoir suggérer quoi utiliser. Si vous avez une colonne de clé primaire Autonumber - commandez par IT
ASC code>. La prochaine meilleure chose serait une colonne Date_Créated, à l'aide du type de données DateTime. Encore une fois,
ASC code>.
Sauf si vous pouvez spécifier un nom de colonne dans une clause code> par code>, vous ne pouvez pas utiliser Ce serait insatisfaisant, je pense. P> desc code>, et vous devrez recourir à des astuces impliquant
Limiter code> pour voir les derniers enregistrements. P>
Vous pouvez définir un compteur dans vos champs de résultat et trier l'utilisation:
SELECT *, @counter := @counter + 1 AS 'counter' FROM tableName, (SELECT @counter := 0) r ORDER BY counter DESC
OUI !! Ça marche ! Merci ! Vous avez répondu parfaitement à la question.
@ Jerry, mais ce n'est que l'inverse de l'ordre de l'ordre des lignes, ce qui n'a pas de connexion garantie à l'ordre de mise en œuvre, ce qui n'a aucune garantie pour être quelque chose en particulier. Si vous voulez une commande garantie, il doit être dans les données. aussi i> Il n'y a aucune garantie pour les requêtes qui définissent la variable et la lecture d'une variable, de sorte que cette requête a un comportement indéfini. Pour une certaine construction récente i> de 5,7 personnes à Percona qui a examiné la mise en œuvre a été constatée que l'utilisation de variables dans case code> expressions ( pas i> comme ça) donne certains comportements prévisibles. Jusqu'à.
Dupliquer: Stackoverflow.com/Questtions/1793147/...
Il n'existe pas de "commande par défaut" afin que vous ne puissiez pas "inverser".