Ich habe eine Tabelle, die jede Minute Daten aufgezeichnet enthält, so dass ich eine Zeile für jede Minute habe. Wenn die Daten zur Verarbeitung zurückgegeben werden, ist diese Genauigkeit für die letzten 6 Stunden erforderlich, aber danach ist ein niedrigeres Maß an Genauigkeit ausreichend, z. alle 5 Minuten.Wie kann ich alle n Zeilen in MySQL bekommen?
Ich kann alle Daten in ein Array zurückgeben und dann entfernen alle bis auf jedes fünfte Element, aber das erfordert alle Daten von MySQL zurückgegeben und dann zuerst in das Array gelesen - ziemlich viele Daten.
Wie kann ich jede n-te Zeile in MySQL zurückgeben? Ich habe this Blog-Post zu lesen, die primaryKey% unter Verwendung schlägt vor 5 = 0, wobei primaryKey ist auto_increment aber
a) keine Indizes verwenden b) nur primaryKey Werte zurück, die von 5 und im Fall von Deletionen teilbar sind , kann nicht tatsächlich jede fünfte Zeile sein
Kann dies nur innerhalb der SQL-Abfrage getan werden, oder wird es erforderlich, Zeile für Zeile durch die Ergebnismenge mit Cursoren Schleifen?
Ich verwende MySQLi in PHP, um eine Verbindung zur DB herzustellen.
Das schien nicht zu funktionieren - es hat nur alle Zeilen aufgelistet. Allerdings habe ich es angepasst Dies funktioniert - SELECT logtimestamp FROM Tabelle WHERE MINUTE (Logtimestamp)% 5 = 0 Hinweis Ich speichern Zeitwerte als Unix-Zeitstempel so benötigt, um FROM_UNIXTIME auch verwenden .. – DavidM
Ich integrierte Teile Ihres Kommentars. –