Es sieht so aus, als ob Sie nach einem String-Literal sortieren. Was ist los mit den einfachen Anführungszeichen um 'myfield'
? Bei einem Zeichenfolgenliteral wird derselbe genaue Wert jeder Zeile zugewiesen, die zurückgegeben wird. Und MySQL kann Zeilen in beliebiger Reihenfolge zurückgeben. Es gibt keine Reihenfolge, die das ORDER BY-Zeichenfolgenliteral verletzen würde. Ich wäre nicht überrascht, wenn der Optimierer einfach eine bedeutungslose ORDER BY-Klausel verwirft.
In MySQL können Kennungen durch Einschließen in Backticks ausgeblendet werden. Auf meinen Tastaturen ist das der `~ Schlüssel oben links, gleich links von der 1! Schlüssel.
Einfache Anführungszeichen umschließen ein String-Literal.
(... eine Diskussion über doppelte Anführungszeichen und ANSI_QUOTES in sql_mode Umgehung ...)
Was diese Abfrage Rückkehr tut?
Auf meinem System erhalte ich 50 Kopien der gleichen Zeichenfolge. Wenn ich den Tabellennamen in einfache Anführungszeichen setze, erhalte ich einen Syntaxfehler.
Das Zeichenfolgenliteral funktioniert genauso in der ORDER BY-Klausel ... in jeder Zeile wird derselbe Zeichenfolgenwert angezeigt.
Der Unterschied in der Reihenfolge, die Sie beobachten, ist wahrscheinlich auf einen anderen Zugriffsplan zurückzuführen. Der Abruf einer Spalte kann einen Index verwenden, der Abruf aller Spalten ist wahrscheinlich ein vollständiger Scan der Tabelle.
Wenn Ihre Abfrage nicht einfache Anführungszeichen verwenden, dann wenden Sie sich bitte die genaue Abfrage zu schreiben, die Sie ausführen.
Bestellung von * zwei * String-Literale wird nicht viel Unterschied machen. – spencer7593
@ spencer7593 ja, ich stimme zu, aber myfield und pk waren "Platzhalter" für die tatsächlichen Feldnamen, die nicht als Literale gedacht waren. also MyField und PK und MyTable seit der Syntax ist dies UNGÜLTIG, wenn meine Tabelle in Ticks ist. – xQbert
Wenn die Bezeichner einfache Anführungszeichen enthielten, konnten sie mit Escapezeichen versehen werden, indem sie in Backticks eingeschlossen wurden. ** 'SELECT ID FROM \' 'MeinTabelle' \ 'ORDER BY \ '' MeinFeld '\', \ '' PK ' \ "' **. – spencer7593