Hacky: [mysql] ersten 3 einträge nicht auslesen...

Ich hab noch ein prob wegen einer Kinopage. Ich will unter der Rubrik 'Archiv' alle gelaufenen Filme unterbringen. Es soll mir alle auflisten aber nicht die ersten 3 Einträge sondern alle nach den ersten 3. Weil die ja noch aktuell sind und deswegen nicht ins Archiv gehören. Und wenn ich 3 neue eintrage sollen ins archiv weiterrutschen.

  1. hi,

    Es soll mir alle auflisten aber nicht die ersten 3 Einträge sondern alle nach den ersten 3.

    SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT 3, 999999

    alle ab dem 3. (zählung beginnt bei 0) bis zum (sehr hohe zahl)-ten.

    gruss,
    wahsaga

  2. Halihallo Hacky

    Ich hab noch ein prob wegen einer Kinopage. Ich will unter der Rubrik 'Archiv' alle gelaufenen Filme unterbringen. Es soll mir alle auflisten aber nicht die ersten 3 Einträge sondern alle nach den ersten 3. Weil die ja noch aktuell sind und deswegen nicht ins Archiv gehören. Und wenn ich 3 neue eintrage sollen ins archiv weiterrutschen.

    Erstens: Anrede vergessen, das sehen wir hier gerne.
    Zweitens: Verabschiedung vergessen, das sehen wir hier gerne.
    Drittens: Da LIMIT
    (http://dev.mysql.com/doc/mysql/en/SELECT.html) hier keine
    wirklich gute Lösung[1] ist, würde ich vorschlagen, dass du entweder:

    SELECT <field-list>
       FROM <table-list>
       WHERE <conditions>
       LIMIT 3,99999999999999

    an deine Bedürfnisse anpasst, oder einfach die ersten drei Datensätze
    ausliest, ohne sie anzuzeigen.

    [1] Nunja, man muss notwendigerweise ein "Ende" bei LIMIT zu setzen.
    Falls dies in der Aufgabenstellung nicht gefordert ist, begeht man
    einen Programmierfehler, zumindest aber eine gewisse Unschönheit.
    Ich würde also zur Lösung tendieren, einfach die ersten drei
    Datensätze zu ignorieren. Falls jedoch eine Art "Zeige Seite 1 von
    5, Datensatz 1-10" o.ä. vorkommt, macht LIMIT wieder Sinn. Hier
    könnte ich mir dann folgendes Vorstellen:

    1. Seite: LIMIT 2, 10    (10 Datensätze)
    2. Seite: LIMIT 12, 10   (10 Datensätze)
    3. Seite: LIMIT 22, 10   (10 Datensätze)

    Viele Grüsse

    Philipp

    --
    The only program that runs perfectly every time, is a virus.
  3. Es soll mir alle auflisten aber nicht die ersten 3 Einträge sondern alle nach den ersten 3.

    SELECT * from deinetabelle ORDER BY datumspalte LIMIT 3,20

    LIMIT 3,20 bedeutet ab dem 3. Datensatz 20 Datensätze abfragen, diejenigen davor werden weggelassen

    1. Hallo, sam

      SELECT * from deinetabelle ORDER BY datumspalte LIMIT 3,20

      http://www.dclp-faq.de/q/q-sql-select.html

      SCNR ;)

      mfg,
        Philip

      1. SELECT * from deinetabelle ORDER BY datumspalte LIMIT 3,20
        http://www.dclp-faq.de/q/q-sql-select.html

        War auch nur ein Beispiel. * kann man schon verwenden für gewisse Anwendungen, kommt immer darauf an für was man die Datenbank braucht.
        Wirklich eine Rolle spielt das sowieso nur bei grösseren Datenabanken, oder bei solchen die später noch erweitert werden sollen.

        1. Hallo,

          War auch nur ein Beispiel. * kann man schon verwenden für gewisse Anwendungen, kommt immer darauf an für was man die Datenbank braucht.
          Wirklich eine Rolle spielt das sowieso nur bei grösseren Datenabanken, oder bei solchen die später noch erweitert werden sollen.

          Das stimmt schon. Deshalb auch das SCNR ... man sollte jedoch meiner Meinung nach versuchen, * wirklich nur dort zu verwenden, wo es auch benötigt wird ...

          mfg,
            Philip

          1. Das stimmt schon. Deshalb auch das SCNR ... man sollte jedoch meiner Meinung nach versuchen, * wirklich nur dort zu verwenden, wo es auch benötigt wird ...

            Das ist auf jeden Fall am saubersten