hustieboy: SORT BY dateiendung (".mp3") ?

hi,

gibt es wohl eine moeglichkeit eine db-query nach stringendung zu sortieren ?

in der spalte "interpreter" steht entweder der interpretername
z.B.:

interpreter           trackname
---------------      ------------
anabolic frolic       song.mp3
anabolic frolic       noch ein song.mp3
anabolic frolic       und noch einer.mp3

oder nur eine *.mp3:
z.B.:
interpreter
-------------
ein lied.mp3
noch eins.mp3
lalalala.mp3

ok, ich mach die db anfrage jetzt so:
$sql = "SELECT DISTINCT interpreter,category, COUNT(interpreter) FROM $table_interpreter GROUP BY interpreter";

klappt, und wird nach alphabet geordnet(!).alle eintraege, die kein *.mp3 als endung haben bekommen ein Ordner.gif angezeigt, alle anderen nicht.

Wie kann ich aber nun eine query machen, die zusaetzlich alle eintraege, die ein *.mp3 haben als erstes anzeigt ??

SORT BY oder so ?

danke

hustieboy

  1. Hi,

    im MySQL-Manual findest du die genaue Syntax der Befehle, aber mit Hilfe von einer Konstruktion in etwa wie:
    ORDER BY SUBSTR(trackname, LENGTH(trackname)-3, 3)

    • damit kannst du zumindest nach der Dateiendung sortieren, was dabei rauskommt hängt dann von den Endungen außer mp3 ab.

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hallo!

    Wie kann ich aber nun eine query machen, die zusaetzlich alle eintraege, die ein *.mp3 haben als erstes anzeigt ??

    SELECT IF(SUBSTRING(string, LENGTH(string)-3)='.mp3', '0', '1') AS temp_spalte, string AS ausgabe FROM mp3 ORDER BY temp_spalte ASC, interpreter ASC;

    // holt die letzten 4 Zeichen eines Strings
    SUBSTRING(interpreter, LENGTH(interpreter)-3)

    // sind die letzten 4 Zeichen gleich '.mp3'
    SUBSTRING(interpreter, LENGTH(interpreter)-3)='.mp3'

    // ja -> temp_spalte=0; nein -> temp_spalte=1;
    IF(SUBSTRING(string, LENGTH(interpreter)-3)='.mp3', '0', '1')

    Dann wird nach der Spalte "temp_spalte" sortiert, 0 steht vor der 1. Dann wird innerhalb des sortieren nach der Spalte "interpreter" sortiert.

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. --> Berichtigung

      SELECT IF(SUBSTRING(string, LENGTH(string)-3)='.mp3', '0', '1') AS temp_spalte, string AS ausgabe FROM mp3 ORDER BY temp_spalte ASC, interpreter ASC;

      SELECT IF(SUBSTRING(interpreter, LENGTH(interpreter)-3)='.mp3', '0', '1') AS temp_spalte, interpreter FROM mp3 ORDER BY temp_spalte ASC, interpreter ASC;

      MfG, André Laugks

      --
      L-Andre @ gmx.de