MC, 2025
Ilustracja do artykułu: MySQL TOP 1 – jak pobrać pierwszy rekord w zapytaniu?

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!

Imię:
Treść: