Order by ?

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

  • Order by ?

    Hi everybody,
    ich suche einen Befehl mit dem ich aus einer DB die Tabellen ordnen kann an Hand des Datums (also z.B. in welcher Tabelle der letzte Eintrag gemacht worden ist). Aber so das ich also eine kleine Hirachie aufbaue!!!
    Hat irgendwer einen Plan???

    Danke Rookie

  • #2
    select * from TABELLE order by DATUM desc

    http://mysql.com/doc/S/E/SELECT.html
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Damit ordne ich doch nur den Inhalt innerhalb der Tabelle!!! Ich suche aber einen Befehl um die Tabellen unter sich zu ordnen, wobei das davon Abhängen soll wann in welche Tabelle zuletzt eingetragen worden ist!!!
      Hoff ich konnte mein Problem diesmal besser veranschaulichen!!

      Danke Rookie

      Kommentar


      • #4
        aha ... zur Beantwortung der Frage müsstest Du deine Tabellenstruktur mal posten - vor allen Dingen muss das Datum der Eintragung in der Tabelle vermerkt werden.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Also, die Tabellenstruktur sieht wie folgt aus:

          name (varchar(50) not null)
          email (varchar(50) not null)
          thema (varchar(100)
          beitrag (text not null)
          datum (datetime not null)

          Rookie

          Kommentar


          • #6
            d.h. du hast mehrere Tabellen mit der gleichen Struktur?
            Dann wäre es sinnvoll, die in eine zusammen zu fassen und mit einem zusätzlichen Parameter für die Kategorisierung zu versehen.
            Außerdem sollte jede Tabelle einen Primary Key haben zur eindeutigen Identifikation der Datensätze.
            Zusätzlich noch einen Index aufs Datumsfeld, damit läßt sich schneller suchen und sortieren:

            Code:
            create table TABELLE (
              ID bigint unsigned auto_increment not null,
              KAT int unsigned(10) not null,
              name varchar(50) not null,
              email varchar(50) not null, 
              thema varchar(100),
              beitrag text not null,
              datum datetime not null,
              primary key (ID),
              key (KAT),
              key (datum)
            )
            dann bekommst du mit select * from TABELLE order by datum desc die neuesten Beiträge, select distinct(KAT) from TABELLE order by datum desc sollte dir die Kategorien in der entsprechenden Reihenfolge liefern.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Ich bin mir nicht ganz sicher ob ich das jetzt richtig verstanden hab. Meinst du, dass jede Tabelle jetzt dieses Form haben soll und dazu in in einer Tabelle gespeichert sein soll die auch so aussieht, oder soll die eine Tabelle nur das Thema und ein datum enthalten was verändert wird bei einem Neueintrag???

              Danke Rookie

              I know: Stupidness is no excuse!!!

              Kommentar


              • #8
                alle Datensätze in eine Tabelle!
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Danke, habs jetzt!!!

                  Rookie

                  Kommentar


                  • #10
                    Ist zwar schon ein wenig her, aber ich habe erst jetzt bemerkt , dass es doch noch nicht so klappt wie ich mir das vorgestellt hatte:

                    Ich möchte es schon so haben, dass nach den Kategorien geordnet wird, aber die Reihenfolge bei select distinct(KAT) läuft anders als ich es erwartet hätte. Hier einmal die unterschiedlichen Suchergebnisse:

                    mysql> select distinct(KAT) from forum order by datum desc;
                    +-----+
                    | KAT |
                    +-----+
                    | 3 |
                    | 1 |
                    | 2 |
                    +-----+


                    mysql> select KAT, datum from forum order by datum desc;
                    +-----+-------------------+
                    | KAT | datum |
                    +-----+-------------------+
                    | 1 | 2001-05-07 18:42:14 |
                    | 1 | 2001-05-07 18:29:14 |
                    | 3 | 2001-05-07 18:25:50 |
                    | 2 | 2001-05-07 14:22:13 |
                    | 1 | 2001-05-07 14:20:15 |
                    | 2 | 2001-05-07 14:12:46 |
                    | 2 | 2001-05-07 14:09:13 |
                    | 1 | 2001-05-07 14:00:17 |
                    +-----+-------------------+


                    Die Korrekte Reihenfolge müsste also 1-3-2 sein und nicht 3-1-2 wie es bei der "distinct(KAT)"-Abfrage ist!

                    Könnt ihr mir bitte noch einmal helfen??? Danke

                    Rookie

                    Kommentar


                    • #11
                      Ne eben nicht distinct nimmt einen Datensatz aber nicht den unbedingt gewollten.
                      Du musst wenn dann ein SELECT MAX(DATUM) FROM tbl GROUP BY kat machen
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        Aber da bekomme ich die Reihenfolge aber auch nicht so wie ich es gerne hätte. Ich möchte ja, dass die Kategorie in der der neuste Eintrag ist auch als erstes Angegeben wird!
                        Sprich wenn zwar die Kategorie 5 vor der Kategorie 7 gegründet worden ist, aber in 7 der letzte Eintrag getätigt ist, dann möchte ich die Kategorie 7 auch als erstes aufgelistet bekommen!!!
                        Auch mit dem "Order by datum desc"-Zusatz bekomme ich nicht das gewünschte Ergebnis!!!

                        Hier die Daten nochmal:

                        mysql> select max(datum), KAT from forum group by KAT order by datum desc;
                        +---------------------+-----+
                        | max(datum) | KAT |
                        +---------------------+-----+
                        | 2001-05-07 18:25:50 | 3 |
                        | 2001-05-07 18:42:14 | 1 |
                        | 2001-05-07 14:22:13 | 2 |
                        +---------------------+-----+

                        Warum sortiert er in dieser komischen Reihenfolge???
                        Danke für euer Ausdauer!!!

                        Rookie

                        Kommentar


                        • #13
                          Original geschrieben von Rookie
                          Aber da bekomme ich die Reihenfolge aber auch nicht so wie ich es gerne hätte. Ich möchte ja, dass die Kategorie in der der neuste Eintrag ist auch als erstes Angegeben wird!
                          Sprich wenn zwar die Kategorie 5 vor der Kategorie 7 gegründet worden ist, aber in 7 der letzte Eintrag getätigt ist, dann möchte ich die Kategorie 7 auch als erstes aufgelistet bekommen!!!
                          Auch mit dem "Order by datum desc"-Zusatz bekomme ich nicht das gewünschte Ergebnis!!!

                          Hier die Daten nochmal:

                          mysql> select max(datum), KAT from forum group by KAT order by datum desc;
                          +---------------------+-----+
                          | max(datum) | KAT |
                          +---------------------+-----+
                          | 2001-05-07 18:25:50 | 3 |
                          | 2001-05-07 18:42:14 | 1 |
                          | 2001-05-07 14:22:13 | 2 |
                          +---------------------+-----+

                          Warum sortiert er in dieser komischen Reihenfolge???
                          Danke für euer Ausdauer!!!

                          Rookie
                          Vielleicht einfach mal 'ne Kombination aus beiden ... ;o)

                          SELECT KAT, MAX(datum) AS max_datum
                          FROM forum
                          GROUP BY KAT
                          ORDER BY max_datum DESC
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar


                          • #14

                            Perfecto!!!

                            Hab's jetzt!!! Vielen Dank für eure Hilfe und eure Geduld!!!!

                            Rookie

                            Kommentar

                            Lädt...
                            X