srob: MySQL, wie ist das normale Ergebnis geordnet?

Beitrag lesen

"SELECT id FROM myTable
WHERE id = 2
OR id = 1
OR id = 3"

bekomme ich da 1,2,3 (schlecht) oder 2,1,3 (besser) oder vielleicht irgendwas vollkommen sinnlos geordnetes?

Hallo Eddie,

das nicht determinierbare Ergebnis ist abhängig von einer Reihe von Faktoren, u.a. von der Reihenfolge der DS in der abgefragten Tabelle und der Vorgehensweise von MySQL bei der Ausführung des SELECTs (welche ihrerseits nicht determinierbar ist).

Woher kommt die verquere Annahme, daß die Reihenfolge 2,1,3 von besserer Qualität sei als 1,2,3 und andere Reihenfolgen sinnlos geordnet seien? Der Sinn von 2,1,3 erschließt sich mir nicht unmittelbar... Denkst Du etwa, die Anordnung der Vergleiche in der WHERE-Klausel hätte darauf einen Einfluß? Nein!

Wenn Du bestimmte Reihenfolgen erwartest, dann lege Sie selbst fest (zum Beispiel mit entsprechenden Spalten und der ORDER-BY-Klausel).

HTH Robert