Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] ORDER BY durchführen vor LIMIT

Einklappen

Neue Werbung 2019

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

  • [Erledigt] ORDER BY durchführen vor LIMIT

    Hallo zusammen,

    ich würde gerne wissen, wie ich meinen mySQL Befehlt optimieren muss, damit erst die Suchmenge sortiert wird und anschließend soll er ein LIMIT setzten.

    Code:
    SELECT
       A.IdentNummer,
       A.Bezeichnung,
       A.Artikelbeschreibung,
       K.KategorieName,
       A.Bemerkung
    FROM
       artikel AS A
    LEFT JOIN
       kategorie AS K ON K.KategorieId = A.KategorieId
    ORDER BY
       A.KategorieId DESC
    LIMIT 0,15
    Ich hab schon nicht wirklich an dieser Stelle verstanden, wieso ich DESC angeben muss. Sonst erhalte ich für alle Artikel die gleiche Kategorie.

    Aber viel wichtiger, warum macht der erst ein Limit und sortiert dann?
    Und kann ich das ändern?
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

  • #2
    Macht "er" nicht.

    Du musst dir darüber im Klaren sein, das wenn ein Artikel in mehreren Kategorien auftaucht, dein Query pro Kategorie den Artikel erneut aufführt. Sortierst du nach der KategorieId, taucht natürlich die erste Kategorie (und alle Artikel in dieser Kategorie) zuerst auf.

    Du solltest dir vielleicht mal die gesamte Ergebnismenge anschauen...
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Zitat von lstegelitz Beitrag anzeigen
      Macht "er" nicht.

      Du musst dir darüber im Klaren sein, das wenn ein Artikel in mehreren Kategorien auftaucht, dein Query pro Kategorie den Artikel erneut aufführt. Sortierst du nach der KategorieId, taucht natürlich die erste Kategorie (und alle Artikel in dieser Kategorie) zuerst auf.

      Du solltest dir vielleicht mal die gesamte Ergebnismenge anschauen...
      Sorry, hätte ich dazu schreiben sollen.

      Jeder Artikel hat hier nur eine Kategorie.
      Somit kann ich auch ohne Limit Perfekt sortieren.
      Wenn ich das Limit zum Statement hinzufügen funktioniert es nicht mehr.

      Es ist dann so, als würde erst die Ergebnismenge begrenzt werden und dann sortiert. Ich möchte es aber gerne umgekehrt haben. Erst sortieren, dann begrenzen
      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

      Kommentar


      • #4
        Zitat von Moewe Beitrag anzeigen
        Es ist dann so, als würde erst die Ergebnismenge begrenzt werden
        Das ist aber nicht so, ORDER BY wird vor dem LIMIT ausgeführt.

        Kommentar


        • #5
          Zitat von erc Beitrag anzeigen
          Das ist aber nicht so, ORDER BY wird vor dem LIMIT ausgeführt.
          Ja war bislang auch meine Meinung. Ich glaub da auch immer noch fest dran.
          Aber merkwüdig das Verhalten. Naja ich mach Feierabend für heute und schau mir das nochmal in Ruhe morgen an.

          Aber danke dennoch. Wird bestimmt ein Denkfehler an anderer Stelle sein.
          Aber ihr konntet mich wenigstens wieder davon überzeugen, das Reihenfolge meist auch Reihenfolge ist.

          Danke und schönen abend
          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

          Kommentar


          • #6
            Versuch den "Fehler" mal hier zu reproduzieren und poste dann den Link.
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              Zitat von tkausl Beitrag anzeigen
              Versuch den "Fehler" mal hier zu reproduzieren und poste dann den Link.
              Ich hab es ja erwartet. Ich bekomme den Fehler dort nicht nachgestellt, da es genauso läuft wie immer erwartet...Man man man wie konnt ich da an der Logik zweifeln
              Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

              Kommentar


              • #8
                Ich wollte nochmal kurz Rückmeldung geben, mir fiel es vor kurzem wie Schuppen von den Augen. Ich möchte es fast ungern sagen wo der Fehler lag, aber eure Mühen welche in den Antworten lagen, bin ich es wohl schuldig.

                Im Code hier hatte ich 0,15 fürs LIMIT stehen...in meinem Code eigentlichen Code befanden sich allerdings defines (Zumindest dachte ich das).
                War jedoch nur eine halb Wahrheit, dadurch lief mein Paging folgendermaßen:
                - LIMIT 0,14
                - LIMIT 5,14
                - LIMIT 10,14
                - LIMIT 15,14

                Ich hatte die Anzahl der Daten pro Seite erhöhen wollen, allerdings habe ich es bei dem LIMIT Startpunkt übersehen, das ganze nach zu ziehen.

                Danke nochmal
                Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                Kommentar

                Lädt...
                X