2008-11-24 8 views

Antwort

15

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.

+0

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. –

+0

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. –

2

< t2.id

DISTINCT t1.columns FROM Tabelle t1
INNER JOIN Tabelle T2 t1.id SELECT

Nach meiner Erfahrung liebt MySQL diese Technik, mehrere Versionen zurück.

+0

Wahrscheinlich sollte SELECT DISTINCT t1.columns ... –

+0

Ich bin sicher, Sie haben ein DISTINCT dort vergessen. – LeppyR64

1

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

Verwandte Themen