select * from ABC where column_value=1;
Die Abfrage gibt keine Sortierung der zurückgegebenen Zeilen an.
SQL ist eine Sprache, die Sätze von Tupeln behandelt und a set ist per Definition eine ungeordnete Sammlung von Elementen.
Die Tatsache, dass eine Datenbank-Engine unter bestimmten Umständen die Zeilen in einer bestimmten Reihenfolge zurückgibt (sortiert nach dem Wert PK
f.e.) ist ein Implementierungsdetail. Es wird von der Sprache nicht benötigt und kann jederzeit geändert werden.
Noch mehr, wenn die Abfrage keine Reihenfolge für die zurückgegebenen Zeilen angibt, verwendet die Datenbank-Engine die jeweils geeignete Methode, um sie schneller zu erhalten. Die Reihenfolge kann von externen Faktoren abhängen und sich mit der Zeit ändern. Wenn Sie beispielsweise die von der Abfrage zurückgegebenen Zeilen aus der Tabelle entfernen und sie dann erneut einfügen, aber in einer anderen Reihenfolge, kann eine nachfolgende Ausführung der gleichen Abfrage (und höchstwahrscheinlich) die Zeilen in einer anderen Reihenfolge als zuvor zurückgeben.
Als Einsicht (das ist weder genau noch zuverlässig), für eine Abfrage, die keine ORDER BY
Klausel über eine kleine Tabelle enthält, gibt die Datenbank die Zeilen in der Reihenfolge sie sie in den Tabellendaten, weil sie findet liest den Index nicht.
Bei kleinen Tabellen überspringt der Motor den Index, wenn er nicht benötigt wird und geht direkt zu den Tabellendaten. Auf diese Weise wird ein Festplattenzugriff erspart, der der Verarbeitung keinen zusätzlichen Wert bietet.
Welche Spalte wird mit 'column_value' bezeichnet? – 1000111
Verwenden Sie "Order by", um in Ordnung zu kommen – jophab
Haben Sie Ihren Primärschlüssel als AUTO_INCREMENT festgelegt? Wenn nicht, und wenn Sie sie manuell eingegeben haben, könnte dies zu einer Ausgabe führen. –