Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] ORDER BY 2 Werte

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] ORDER BY 2 Werte

    hi,

    kann man bei einer mysql abfrage bei ORDER BY auch zwei werte angeben?


    also z.B. so:

    SELECT * FROM xxx WHERE x='x' ORDER BY tag, monat

    d.h.

    er soll mir die ergebnisse vom kleinsten datum her anzeigen und vom kleinsten monat.

    ist das möglich?

  • #2
    Code:
    ORDER BY monat, tag DESC

    Kommentar


    • #3
      Re: ORDER BY 2 Werte

      Zitat von conym18
      SELECT * FROM xxx WHERE x='x' ORDER BY tag, monat
      wie dutziman schon gesagt hat geht es, aber du hast doch ein lösungsansatz gehabt...
      warum hast du den nicht einfach ausprobiert?

      Kommentar


      • #4
        Gleiches Problem

        Glaub ich

        Ich versuche auch die Sortierung über zwei Bereiche, einmal die Spalte Jahr (INT: 2004) und einem Sortierstring (INT: 20041205). Die Sortierung nach Jahr und Sortring Tag (hier die letzten zwei Zahlen) im Sortstring klappt. Der Monat jedoch (Zahl 5-6 im Sortstring) wird nicht beachtet. Die Sortierung ergibt also folgendes Ergebnis:

        2004
        - 10
        --05
        --04
        --03

        - 12
        --06
        --05

        - 11
        --12
        --11
        --10

        ...
        Wie man sieht ist der Monat etwas Konfuss
        Irgendwie hab ich ein brett vorm Kopf...

        Kommentar


        • #5
          @hfuechter
          Wie lautet denn deine Abfrage?
          Gruss
          L

          Kommentar


          • #6
            Jo, had isch nicht dran gedacht...

            So sieht die Abfrage aus (abgespeckt):

            Code:
            $abfrage = "SELECT * FROM db_fwh ORDER BY jahr, sortwert";
            $ergebnis = mysql_query($abfrage);
            
            while($row = mysql_fetch_object($ergebnis))
            {..AUFLISTUNG_ALLER_DATEN...}

            Kommentar


            • #7
              Ich sehe auf den ersten Blick keinen Fehler. Es kann aber auch nicht diese Abfrage sein, die das oben genannte Resultat liefert, da müsste mindestens noch ein "desc" hin. Lass dir mal alle Sortiertwerte ausgeben.
              Was ich mich auch noch frage, auch wenn das nicht direkt im Zusammenhang mit dem Problem steht, ist:
              • 1. Warum speicherst du deinen Sortierwert als Integer und nicht als einen Datums-Typ.
                2. Warum sortierst du nach Jahr und Sortierwert, wenn das Jahr ja auch im Sortierwert enthalten ist.
              Gruss
              L

              Kommentar


              • #8
                Ok, also noch mal die gesamte Abfrage, ich dachte nur ich räum etwas auf- ist leichter zu lesen-, da wär das desc wär dann auch Egal- wenn er nur die Reihenfolge einhält, ob nun Vorwärts oder Rückwärts.

                Das Jahr habe ich hinzugefügt, weil das Sortwert schon nicht das richtige Ergebniss brachte (mit dem ganzen Umstricken versucht man ja jeden Blödsinn ) Den Sortwert hatte ich schon als Varchar und auch als Timestring versucht. Zum Schluss bin ich dann auf Int hängen geblieben.

                Code:
                $abfrage = "SELECT * FROM db_fwh WHERE set3 = 'Wettbewerb' AND jahr ='$showjahr' AND set2='Sichtbar'  ORDER BY sortwert, jahr desc";
                $ergebnis = mysql_query($abfrage);
                {
                	echo "<table width=100% border=0 cellpadding=0 cellspacing=0>";
                
                	while($row = mysql_fetch_object($ergebnis))
                	{
                		echo "<tr><td width=45%>titel ";
                		$thumb = $row->set1;
                		$link = ereg_replace("/home/httpd/docs/phpnuke/db_fwh/","",$thumb);
                
                		echo "</td><td width=25%> $row->datum ";
                		#echo "</td><td width=33%><img src=$link$row->image_small border=0>";
                		echo "</td><td width=33%>
                <a href=view.php?id=$row->id>$row->intro</a>
                
                ";
                
                		echo "</td></tr>";	
                		echo "<tr><td colspan=3 bgcolor=#cccccc height=10></TD></tr>";
                
                	}
                
                }
                echo "</table>
                
                ";

                Kommentar


                • #9
                  Da du ja das Jahr schon als Selektionskriterium eingibst und somit nur ein Jahr ausgibst, macht die Sortierung nach Jahr definitiv keinen Sinn mehr. Aber das ist immer noch nicht das Problem. Gib mal die folgende Abfrage in einen SQL-Monitor ein und schau, was dabei raus kommt:
                  Code:
                  SELECT sortwert
                      FROM db_fwh 
                      WHERE set3 = 'Wettbewerb' 
                      AND jahr = 2004
                      AND set2 = 'Sichtbar'  
                      ORDER BY sortwert desc;
                  Gruss
                  L

                  Kommentar

                  Lädt...
                  X