2013-05-08 17 views

Odpowiedz

18

Get zapisy z największych identyfikatorów pierwszy, a następnie zatrzymać po pierwszym rekordzie:

SELECT * FROM MyTable ORDER BY id DESC LIMIT 1 
+1

Powyżej kwerendy Przeszukuje n rekordów, a następnie aranżuje n rekordów, a następnie dostaje 1 rekord ... ?????? jest to zapytanie wydajne, wymaga dostrojenia. Poniżej odpowiedź @Newbie jest znacznie lepsza pod względem wydajności. –

+4

W zapytaniu LIMIT * n * SQLite przechowuje tylko * n * największe wiersze podczas sortowania. A jeśli kolumna jest indeksowana, sortowanie nie jest konieczne. –

1

Jeśli chcesz znać składnię zapytania:

String query = "SELECT MAX(id) AS max_id FROM mytable"; 
7

Podobnie jak MySQL, można użyć MAX()

np SELECT MAX(id) AS member_id, name, value FROM YOUR_TABLE_NAME

+0

Chcę wybrać wartość nie id. – abidinberkay

+0

Zaktualizowałem swój kod. To powinno zadziałać teraz – Lian

+0

Przepraszam Zapomniałem zapisać moją edycję – Lian

0

Spróbuj tego:

SELECT value FROM table WHERE id==(SELECT max(id) FROM table)); 
+0

'==' nie istnieje w SQL, jeśli się nie mylę. – RichouHunter

+0

Istnieje w SQLite: https://sqlite.org/lang_expr.html – sergi

+0

W porządku, wystarczy. – RichouHunter

Powiązane problemy