Je traite une table de base de données héritée qui n'a pas de colonne de date d'insertion ou de colonne d'identifiant unique, mais l'ordre naturel d'insertion est toujours valide lorsqu'elle est examinée avec un SELECT *
simple montrant le plus ancien au plus récent.Inverser l '"ordre naturel" d'une table MySQL sans ORDER BY?
Je voudrais comme pour aller chercher ces données avec, mais inverser la pagination afin que si elle était ORDER BY date DESC
J'ai pensé à envelopper la requête, l'attribution d'un identifiant numérique aux lignes résultantes, puis faire une ORDER BY
sur le résultat mais wow qui semble fou.
Existe-t-il une solution plus simple que je néglige?
Je ne peux pas ajouter de colonnes à la table existante, je dois travailler avec tel quel.
Merci pour vos idées!
Ouch. Cela ressemble à une mission impossible. Je serais très intéressé si quelqu'un peut trouver une solution réalisable, cependant. – Spudley
Vous feriez mieux d'ajouter la clé PRIMAIRE à la table. SQL ne garantit pas l'ordre paticulaire des enregistrements dans la table. Lorsque la commande sera brisée, vous ajouterez la clé de toute façon. Donc, plus vite vous le ferez, plus vous économiserez de temps à l'avenir. –
J'ai une situation connexe où la table a effectivement un horodatage, mais plusieurs lignes peuvent être insérées dans la même seconde. Il s'agit d'une table de journalisation/audit, il n'y a donc aucune règle selon laquelle chaque ligne doit être unique, et encore moins posséder une clé naturelle unique. Quand je trier par horodatage, je suis parfois confus par l'ordre des événements dans la même seconde. – Brilliand