Ich habe eine Tabelle mit N Zeilen, und ich möchte N-1 Zeilen auswählen.MySQL: So wählen Sie alle Zeilen aus einer Tabelle mit Ausnahme der letzten
Vorschläge, wie dies in einer Abfrage zu tun ist, wenn es möglich ist ..?
Ich habe eine Tabelle mit N Zeilen, und ich möchte N-1 Zeilen auswählen.MySQL: So wählen Sie alle Zeilen aus einer Tabelle mit Ausnahme der letzten
Vorschläge, wie dies in einer Abfrage zu tun ist, wenn es möglich ist ..?
Hat die letzte Zeile die höchste ID? Wenn ja, würde ich denken das würde funktionieren:
SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE)
MySQL erlaubt Subselects in der aktuellen Version, oder?
In den meisten Fällen würde es jedoch wahrscheinlich besser funktionieren, wenn Sie alle Zeilen ausgewählt und dann die unerwünschten Daten in Ihrer Anwendung herausgefiltert haben.
< t2.id
DISTINCT t1.columns FROM Tabelle t1Nach meiner Erfahrung liebt MySQL diese Technik, mehrere Versionen zurück.
Wahrscheinlich sollte SELECT DISTINCT t1.columns ... –
Ich bin sicher, Sie haben ein DISTINCT dort vergessen. – LeppyR64
Eine andere Technik, die ich aufgelistet sehe nicht, hier ist
SELECT * FROM table ORDER BY id DESC LIMIT 10000 OFFSET 1;
Dies gibt Ihnen die von id Nachkomme bestellt Aufzeichnungen außer erste, das heißt mit Ausnahme des letzten in der ursprünglichen Reihenfolge.
Beachten Sie, dass Sie mit dieser Methode nur 10000 Datensätze nehmen können, jedoch kann diese Anzahl so hoch sein, wie Sie möchten, aber nicht weggelassen werden.
Der Vorteil dieser Methode ist, dass Sie bestellen können, was immer Sie wollen.
Der Nachteil ist, dass es Ihnen die Datensätze von letzten bis ersten bestellt.
Schließlich lohnt es unter Hinweis darauf, dass die anderen Methoden, die hier recht gut
Eine andere Möglichkeit, dies könnte zu tun funktioniert:
SELECT * FROM table WHERE ID <> LAST_INSERT_ID()
Referenz: http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html
MySQL 4.1 hat Subqueries für mehr als vier Jahren unterstützt! Obwohl einige Hosting-Unternehmen noch MySQL 4.0 verwenden, die diese Funktion fehlt. –
Heh, das dachte ich mir. Aber das letzte Mal, als ich MySQL benutzt habe, war es 3.X, und sowas hat nicht funktioniert. Hauptsächlich mit MS SQL Server heutzutage. –