2017-05-12 6 views
0

Ich brauche eine Reihe von Datensätzen aus der MySQL-Datenbank, sortiert nach Feld 'Datum', das Datum im Format YYYY-MM-DD enthält HH: mm: ss. Wenn ich SQL-Abfrage verwenden:SQL ORDER BY Datum DESC gibt keinen letzten Datensatz zurück

$sql = "SELECT * FROM table_name WHERE id=".$_SESSION['id']." ORDER BY date DESC LIMIT 11 OFFSET ".$offset; 

alles richtig sortiert, aber die letzte Zeile nie zurückgegeben. Wenn ich SQL-Abfrage ohne Befehl ORDER BY verwende, werden alle erforderlichen Datensätze zurückgegeben.

Abfrage, die alle benötigten Datensätze aus der Datenbank zurückgibt:

"SELECT * FROM table_name WHERE id=".$_SESSION['id']." LIMIT 11 OFFSET ".$offset; 

Ausgabe wird nicht mit LIMIT 11 OFFSET ".$offset verbunden, weil auch ohne diesen Teil der Abfrage das Problem weiterhin besteht.

Mit was ist dieses ungewöhnliche Verhalten verbunden?

+0

Mögliches Duplikat von [Seltsame Ergebnisse mit Order by und Limit] (http://stackoverflow.com/questions/27803067/strange-results-using-order-by-and-limit) – Woodrow

+1

Sie sagen, Sie bekommen nur 10 Zeilen in der ersten Abfrage, aber 11 in der zweiten? – JNevill

+0

Die 'funktionierende' Abfrage gibt eine unbestimmte Menge von Datensätzen aus der Tabelle zurück. Außerdem ist der Begriff "id" normalerweise für einen Ersatz-PRIMÄRSCHLÜSSEL reserviert, was Ihre Abfrage sehr merkwürdig macht. – Strawberry

Antwort

0

SQL-Abfrage stellte sich als vollständig korrekt heraus. Es war ein Problem von PHP-Code, der diese Abfrage ausgeführt hat. Das Problem ist gelöst.

+0

Großartig, aber die Abfrage macht immer noch nicht viel Sinn :-( – Strawberry

+0

Eine der Variablen wurde während der Darstellung der Daten unnötig dekrementiert und es wurde immer nur ein Datensatz angezeigt. Ich überprüfte ob db interface korrekte Daten liefert Die Ergebnisse waren völlig in Ordnung, also habe ich ein Problem mit meinem PHP-Code. – wkurek