MySQL TOP 1 – jak pobrać pierwszy rekord w zapytaniu?
Wielu użytkowników baz danych MySQL zastanawia się, jak pobrać tylko jeden rekord z wyniku zapytania – czyli coś w stylu „MySQL TOP 1”. Chociaż MySQL nie posiada dokładnie takiej składni jak SQL Server (gdzie stosuje się TOP 1), istnieje kilka prostych sposobów na uzyskanie tego efektu. W tym artykule pokażemy najlepsze podejścia i podamy praktyczne przykłady.
Jak pobrać pierwszy rekord w MySQL?
W MySQL nie używamy TOP 1, lecz zamiast tego stosujemy LIMIT 1. Oto podstawowe zapytanie:
SELECT * FROM users LIMIT 1;
Powyższe zapytanie zwróci pierwszy rekord z tabeli users. Ale co, jeśli chcemy, aby był to „najświeższy” użytkownik, czyli ten, który został dodany jako ostatni?
SELECT * FROM users ORDER BY created_at DESC LIMIT 1;
Dodając ORDER BY created_at DESC, pobieramy użytkownika o najnowszej dacie utworzenia.
MySQL TOP 1 – przykłady zaawansowane
1. Pobranie użytkownika o największej liczbie punktów
Jeśli mamy ranking użytkowników, możemy pobrać lidera:
SELECT * FROM users ORDER BY score DESC LIMIT 1;
2. Pobranie najstarszego rekordu
Czasem chcemy zobaczyć pierwszy wpis w bazie:
SELECT * FROM users ORDER BY id ASC LIMIT 1;
3. Pobranie pierwszego rekordu z każdej grupy
Jeśli mamy użytkowników przypisanych do różnych grup i chcemy pobrać „TOP 1” dla każdej z nich, możemy użyć podzapytania:
SELECT * FROM users u1 WHERE id = (SELECT MIN(id) FROM users u2 WHERE u1.group_id = u2.group_id);
Podsumowanie
W MySQL nie używamy TOP 1 jak w SQL Server, ale dzięki LIMIT 1 możemy łatwo pobierać pierwszy rekord. Możemy go sortować, filtrować i używać podzapytań, by uzyskać dokładnie to, czego potrzebujemy. Mam nadzieję, że te przykłady pomogą Ci w codziennej pracy z MySQL!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!