2016-05-10 3 views
-1

sagen läßtwie nächsten max (id) in einer Tabelle finden

Mein Tisch

Id Status 
1 0 
2 1 
3 0 
4 0 
5 1 
6 0 

enthält Ich brauche eine Ausgabe wie

Id Status 
5  1 

I wie Max (id) versucht, aber es gibt Ausgabe als

+0

Was die Auswahlkriterien sind? – Strawberry

+0

Also ... Sie wollen MAX (Status). Nein? – Chris

+0

Ich brauche nicht MAX (Status) und alle ... –

Antwort

0

Versuchen Sie dies:

SELECT id, status 
FROM myTable ORDER BY `id` DESC LIMIT 1 , 1 

Ich habe angenommen, dass Sie sich für die zweithöchste Id Rekordwerte suchen.

0

Ich denke, Sie möchten die maximale (ID) wo Status = 1?

Dann nutzen select max(id) from table where Status=1

1

Ich kann nur annehmen, dass Sie über die maximale id dieser Einträge wissen wollen, mit Status = 1, nicht wahr? Dann nutzen

select max(id) from mytable where Status=1 
0

Da Sie das absolute Maximum aus beiden Spalten erhalten möchten verwenden:

SELECT GREATEST(MAX(id), MAX(status)); 
0

dieses Versuchen Sie auch

select Id,Status 
    from table 
    where Id=(
select MAX(Id) from table where Id <> (select MAX(Id) from table) 


) 
0

Ihre Frage ist ein wenig unklar, was es Sie wirklich wollen. Von Ihrem Beispiel, ich denke, Sie möchten die maximale ID für den maximalen Status.

Dies ist der max-ID für jeden Status:

select max(id), status from table 
group by status; 

Der in 5,1 und 6,0 ​​ergeben.

Sie könnten dann herausfiltern, was Sie nicht benötigen, z.

select * from (
    select max(id), status from t 
    group by status 
) maxidperstatus 
where maxidperstatus.status = (select max(status) from t); 
0

Ich gehe davon aus, dass Sie die Id wollen, wo der Status der größte dieses ist Versuchen

select max(status),id from table group by id order by max(status) DESC 
Verwandte Themen