2016-04-15 7 views
0

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?

+1

'* SELECT' ist Antipattern. Auf lange Sicht mehr Probleme als Gewinne. Was, wenn in Zukunft jemand neue Spalte hinzufügt? – lad2025

+0

gleiche Spaltenreihenfolge oder Zeilenreihenfolge? – Alnitak

+2

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

Antwort

-1

standardmäßig es den Auftrag durch primary_key gibt (wenn Sie geben keine order by-Klausel)

+1

Das wäre neu für mich? –

+3

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 –

+0

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). –

Verwandte Themen