mysql -> order
Mark
- datenbank
Guten Morgen,
kann man in der mysql-Anweisung* auch eine eigene Reihenfolge festlegen, oder kann man dort nur ASC und DESC anwenden?
Also nicht 1,2,3,4,5 | 5,4,3,2,1 sondern z.B. 2,4,5,3,1
Ich konnte/könnte das zwar via PHP im Nachhinein noch passend machen, aber je kürzer desto besser.
Gruß, Mark
*=Sorry wenn ich mich mit der "Begrifflichkeit" vergriffen hab, hoffe dennoch dass meine Frage richtig verstanden wird.
Guten Morgen,
kann man in der mysql-Anweisung* auch eine eigene Reihenfolge festlegen, oder kann man dort nur ASC und DESC anwenden?
Also nicht 1,2,3,4,5 | 5,4,3,2,1 sondern z.B. 2,4,5,3,1
Wahrscheindlich geht sowas wie:
SELECT *, IF(id = 1,'0',(IF(id=3,'1',(IF(id=5,'2',(IF(id=4,'3',(IF(id=2,'5',0)))))),))) AS order_attri
From table
ORDER BY order_attri DESC/ASC
Ist aber einfacher du machst es mit PHP
mfg Tobias
O.K. dann nicht :)
Beispiel:
Ich habe zwei Tabellen
Artikel
------------------
id : hst_id : artikel_name
Hersteller
------------------
hst_id : hesteller_name
bei beiden tabellen können nachträglich Datensätze eingefügt werden, heisst aber auch z.B., dass Hersteller mit Anfangsbuchstaben A eine höhere ID(Autoindex) zugeordnet bekommen können.
Meine Artikel-Ausgabe soll aber aufsteigend ausgegeben werden und zwar zuerst hersteller_name, dann artikel_name...die Namen liegen aber in zwei unterschiedlichen Tabellen.
Bleibt mir da keine andere Möglichkeit als die Tabelle Artikel in einem Array zu speichern und hinterher dieses mit dem Hersteller auszugeben? Wenn ja hab ich das nächste Problem -> Meine Blätterfunktion ist für die Katz (LIMIT in Tabelle Artikel):(
Gruß und Danke
Mark
Du kannst in der Abfrage die beiden Tabellen Verknüpfen:
SELECT
Artikel.*, Hersteller.*
FROM
Artikel LEFT JOIN Hersteller
ON
Artikel.hst_id = Hersteller.id
ORDER BY
hersteller_name, artikel_name
Ein ganz großes Dankeschön tobias!
Gruß, Mark
yo,
kann man in der mysql-Anweisung* auch eine eigene Reihenfolge festlegen, oder kann man dort nur ASC und DESC anwenden?
das geht meiner meinung nach auf zwei wegen. zum einen könntest du zusätzlich eine weitere spalte einfügen, nach der in der query sortiert wird und in abhähgigkeit zu den werten der betroffenen spalte steht. also sagen wir mal du hast die zahlen 1 bis 5 und die 4 soll zuerst kommen, dann hat der datensatz in der einen spalten den wert 4 und in der "künstlichen" sortierungspalte eben den wert 1, usw.
der andere weg würde über den datentyp enum gehen. wie der genau definiert ist, kannst du dir in der mysql dokumentation anschauen.
Ilja