Mailinglisten-Archive |
Hi Sigi, > Muss!? Sollte ;) > Wenn ich das probiere, bekomme ich von MySQL eine Fehlermeldung als > Syntaxerror genau an der Stelle! Ehrlich gesagt, wäre ich auch nie > auf sowas gekommen, denn das "Feldgeschäft" wird ja vor dem "from" > erledigt und das "order by" sind nur Zeiger, womit dort eine > "concat" Zusammenfassung fehl am Platz wäre. Nein. Das "vor dem from" (oder eher: das nach dem Select) beschreibt, was dein SQL-Ausdruck zurückgibt. ORDER BY <Ausdruck>[,<Ausdruck>...] ist das Sortierkriterium und es steht nirgends, dass <Ausdruck> nur ein Feldbezeichner sein darf und nicht auch ein Funktionsaufruf. Du kannst natürlich auch ein SELECT *,Concat(NAME_1,NAME_2,NAME_3) AS MySort FROM ... ORDER BY MySort; machen, dann kriegst du halt noch den Sortierbezeichner mitgeliefert (was effektiv nur in einem Mehrtraffik resultiert). Natürlich kann es sein, dass Funktionen im ORDER BY erst ein Feature von MySQL 2.23.x ist (ich hab in der Revsision-History allerdings beim Überfliegen nix dazu gefunden). Allerdings ist diese Version mittlerweile so stabil, dass imho ihr Einsatz durchaus zu empfehlen ist. > >Aber ich wie ich die Sache so sehe, solltest du wohl mal dein > >DB-Design überdenken... > > Ich laß mir gerne von einem Profi was näherbringen. Was soll ich > denn bitte an meinem Datenbank Design überdenken? Was kannst Du mir > da empfehlen? Ich weiß nicht genau, was du in deinen Tabellen speicherst, aber generell sieht etwas wie NAME_1,NAME_2,NAME_3 nicht gerade nach relationalem Datenbankdesign aus, noch dazu wenn darin wirklich Namen im Plaintext gespeichert sind. Aber das hängt wiegesagt zur gänze von der Zielsetzung der Datenbank ab, deshalb kann man da keine allgemein gültige Aussage treffen. Gruß Jan --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive