Hallo
Ich habe zwei Fragen zu MySQL. Die Erste: Wie sieht eine Abfrage aus, mit der ich alle Datensätze einer Tabelle bekomme, aber nur die letzten drei nicht?
wie dedlfix und rob bereits angemerkt haben, ist es zunächst ein Problem, die
drei "letzten" Datensätze zu erkennen.
Wie muss ich das schreiben? In Verbindung mit PHP und mehreren Abfragen könnte ich das zwar zusammenmurksen,
D.h. Du kennst das Kriterium, das Dir die letzten Datensätze liefern kann.
aber eigentlich sollte soetwas doch über MySQL auch gehen.
MySQL 4.1 und neuer vorausgesetzt, ja.
Gib mir die Liste der Datensätze, bei denen die Zeilenidentifizierer nicht
in der Liste der Zeilenidentifizierer der drei letzten Datensätze enthalten
sind:
[code lang=sql]SELECT -- Gib mir die Liste der
spaltenliste -- Datensätze
FROM tabelle t1 -- meiner Tabelle,
WHERE t1.id NOT IN ( -- deren Identifizierer nicht in der Liste
SELECT -- der Identifizierer
t2.id
FROM tabelle t2 --
ORDER BY dein_kriterium DESC
LIMIT 3 -- der drei "letzten" Datensätze
) -- enthalten ist.
Und die zweite Frage ist: Ich habe ein Feld von dem Typ ENUM. Wie kann ich mir alle Möglichkeiten, die ich bei ENUM angegeben habe, mir ausgeben lassen? Bei PhpMyAdmin wird das eingesetzt. Also muss es irgendwie gehen. Aber ich habe im Internet nichts dazu gefunden.
Das MySQL-Handbuch sagt es Dir im Abschnitt ENUM:
<zitat>
If you want to determine all possible values for an ENUM column, use SHOW COLUMNS FROM tbl_name LIKE enum_col and parse the ENUM definition in the Type column of the output.
</zitat>
Nein, das ist nicht besonders praktisch. Aber Du solltest an ENUM-Spalten
sowieso nicht herumhantieren.
Freundliche Grüße
Vinzenz