dedlfix: Datumsabfrage in MYSQL

Beitrag lesen

Hi!

Erstmal musst du die Daten sortieren (ORDER BY)
Dann interessiert dich nur der Teil ab jetzt (WHERE date >= NOW())
Es interessiert dich auch nur der nächste Termin, nicht alle (LIMIT)

Die Reihenfolge ist etwas anders. Zuerst werden die Daten nach ihrem Suchkriterium eingeschränkt, dann die entstandene Datenmenge sortiert. Und in der Reihenfolge muss das auch im Statement notiert sein.

Das DBMS kann übrigens intern sehr schön optimieren, wenn es für die Datumsspalte einen Index verwenden kann. Dann ist nämlich der Sortiervorgang nicht mehr erforderlich, das WHERE findet den Übergang zwischen < und >= schnell, und mit dem LIMIT muss nur noch einmal zugegriffen werden. Ohne Index muss die gesamte Tabelle nach passenden Daten durchforstet werden, die Sortierung ist notwendig und der Rest der Datensätze außer dem einen muss ungenutzt verworfen werden. (Die Statementsyntax bleibt aber die gleiche, egal ob das DBMS intern was optimieren kann oder nicht.)

Lo!