Hallo suit,
SELECT CONCAT (bar, foo) as baz ORDER BY baz
Folgendes ist kürzer und geht auch, aber logisch dasselbe (wenn man von der Ausgabe absieht):
SELECT id ORDER BY CONCAT(bar, foo)
Dein Beispiel ist nicht ausreichend spezifiziert. Sprich: es gibt keinen Fall, wo Deine Spezialsortierung greift. Außerdem sind bestimmte Randbedingungen nicht berücksichtigt, die Du nicht speziell erwähnt hast.
Zusammengefasst: für Deine (unzureichende) Problembeschreibung ist dies keine hinreichende Lösung.
a) Aus Deinem Lösungsansatz entnehme ich:
id | bar | foo
---+-----+----
1 | aaa | bb
2 | aa | c
3 | a | aaaab
möchtest Du in der Reihenfolge
id | bar | foo
---+-----+------
3 | a | aaaab
1 | aaa | bb
2 | aa | c
sortiert haben, weil die verketteten Inhalte so sortiert würden. Ist das richtig?
Wenn ja, musst Du berücksichtigen,
- dass MySQL dafür keinen Index verwenden kann (AFAIR).
- dass Deine Lösung voraussetzt, dass die Werte der Spalte "foo" *nicht* den
Wert NULL annehmen dürfen.
Wenn nein? Dann gib eine bessere Problembeschreibung!
Freundliche Grüße
Vinzenz