2009-08-16 21 views
0

Wie kann ich eine bestimmte Zeile aus einer Tabelle auswählen?Auswählen einer bestimmten Zeile aus einer Tabelle

ich so etwas wie das erreichen machen wollen folgende:

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = 5 

select * from 
    (select * from tablename1 where type=1 order by id desc) 
where rownum = $variable 
+1

Aus welcher Datenbank? Unterschiedliche Anbieter handhaben das anders. –

+0

ich verwende mysql db – user156073

Antwort

3

Verwenden Sie das LIMIT Stichwort:

SELECT * FROM tablename WHERE (stuff...) LIMIT $rownum,1; 

Wenn Sie 2 Zahlen passieren zu LIMIT, es behandelt die erste als Offset und die zweitens als eine Anzahl von Ergebnissen, die zurückgegeben werden sollen (während, wenn Sie nur 1 Zahl übergeben, wird es nur als eine Anzahl von Ergebnissen behandelt). Wenn Sie also nach LIMIT $rownum,1 fragen, erhalten Sie nur eine Zeile zurück, die an der Position $ rownum steht (beachten Sie, dass Zeilen beginnend mit 0 indexiert werden).

+0

Dies ist ein MySQL-Schlüsselwort. Was das OP oben gepostet hat, ist die PL/SQL-Syntax. SQL Server verwendet 'row_number() über (order by col)'. Und jetzt weißt du es. – Eric

+0

Eigentlich war das, was das OP gepostet hat, auch eine gültige MySQL-Syntax (zumindest nicht das Zeilennummernbit, nach dem sie überhaupt gefragt haben). Ganz zu schweigen von ihrem Kommentar, dass sie mysql benutzen. – Amber

+0

@Dav: 'rownum' ist keine Funktion in MySQL, und das OP postete diesen Kommentar * nach * mir. Und ich bin kein Zeitreisender. Noch. Du erhältst +1 für die nun korrekte Antwort :) – Eric

Verwandte Themen