Ich arbeite an einer Datenbank-Schnittstelle und brauche die Antwort der folgenden Frage:Ist SELECT * deterministisch?
Wird SELECT * FROM some_table
immer die Ergebnisse in der gleichen Reihenfolge in MySQL zurückgeben?
Ich arbeite an einer Datenbank-Schnittstelle und brauche die Antwort der folgenden Frage:Ist SELECT * deterministisch?
Wird SELECT * FROM some_table
immer die Ergebnisse in der gleichen Reihenfolge in MySQL zurückgeben?
standardmäßig es den Auftrag durch primary_key gibt (wenn Sie geben keine order by-Klausel)
Das wäre neu für mich? –
Ah, es scheint * manchmal * der Fall zu sein, aber man kann sich nicht darauf verlassen. Siehe http://stackoverflow.com/questions/8746519/sql-what-is-the-default-order-by-of-queries –
Ich denke, es kann passieren, wenn der Abfrageoptimierer beschließt, Zeilen direkt über einen Index abzurufen. Aber die Daumenregel von SQL lautet: Vermeiden Sie unnötige teure Operationen (wie Sortieren). –
'* SELECT' ist Antipattern. Auf lange Sicht mehr Probleme als Gewinne. Was, wenn in Zukunft jemand neue Spalte hinzufügt? – lad2025
gleiche Spaltenreihenfolge oder Zeilenreihenfolge? – Alnitak
Wenn Sie die Reihenfolge der Spalten bedeuten: ja. Wenn Sie die Reihenfolge der Zeilen meinen: nein. Außer dass Sie eine 'order by'-Klausel hinzufügen, ist auch die Reihenfolge der Zeilen immer gleich. – PerlDuck