Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ograniczyć wiersze w zestawie wyników MySQL

Problem:

Chcesz ograniczyć liczbę wierszy w zestawie wyników w MySQL.

Przykład:

Nasza baza danych zawiera tabelę o nazwie student z danymi w kolumnach id , first_name , last_name i age .

id imię nazwisko wiek
1 Steven Watson 25
2 Lisa Anderson 19
3 Alicja Młynarz 19
4 Maryi Brązowy 25
5 Lucy Watson 25
6 Michael Jackson 22

Wybierzmy imiona i nazwiska uczniów oraz ich wiek, ale ograniczmy zwracane wiersze do trzech.

Rozwiązanie:

SELECT first_name, last_name, age
FROM student
LIMIT 3;

Oto wynik zapytania:

id imię nazwisko wiek
1 Steven Watson 25
2 Lisa Anderson 19
3 Alicja Młynarz 19

Dyskusja:

Klauzula LIMIT ogranicza liczbę wierszy w zestawie wyników. Jest używany w instrukcji SELECT, zwykle na końcu instrukcji. (Nawet ORDER BY powinno być wymienione przed LIMIT.)

Jedynym wymaganym argumentem jest liczba wierszy do wyświetlenia. W naszym przykładzie LIMIT 3 wygenerował zestaw wyników zawierający trzy wiersze. O ile nie określisz inaczej z argumentem PRZESUNIĘCIE, ta funkcja zawsze zwróci pierwsze n wiersze spełniające wymagania zapytania.

Opcjonalny argument OFFSET funkcji LIMIT jest umieszczany przed argumentem wskazującym liczbę zwróconych wierszy. Wskazuje pozycję pierwszego wiersza zwróconego przez LIMIT (tj. „0” to pierwszy wiersz, 1 to drugi wiersz itd.). Przesunięcie i liczba wierszy są oddzielone przecinkiem.

Zapytanie zwraca te same rekordy, co poprzednie, ponieważ przesunięcie wynosi zero. (zero jest domyślną wartością przesunięcia).

SELECT first_name, last_name, age
FROM student
LIMIT 0, 3;

W tych zapytaniach wiersze wyników są nieuporządkowane. Jeśli chcesz wybrać trzy wiersze z posortowanego zestawu wyników, użyj opcji ORDER BY:

SELECT first_name, last_name, age
FROM student
ORDER BY age DESC, last_name, first_name
LIMIT 1,3;

Tutaj najpierw porządkujemy wiersze według wieku (według stanu początkowego), potem nazwiska, a następnie imienia. Używamy wartości przesunięcia, aby rozpocząć od drugiego zwróconego wiersza i ograniczamy wyniki do trzech wierszy:

imię nazwisko wiek
Lucy Watson 25
Steven Watson 25
Michael Jackson 22

To zapytanie najpierw sortuje wiersze według kolumny wieku w porządku malejącym. Następnie sortuje według last_name i first_name w porządku rosnącym. Jeśli spojrzysz na stół, zobaczysz, że najstarsi uczniowie (Steven, Lucy, Mary) mają 25 lat. Jednak Mary została pominięta, ponieważ jest w pierwszym rzędzie, a przesunięcie wynosi 1 (tzn. zaczynamy od drugiego rzędu). Lucy jest teraz pierwsza, ponieważ jej imię jest przed Stevenem. (Steven i Lucy mają to samo nazwisko, więc ich kolejność zależy od imienia.) Michael ma 22 lata, co czyni go kolejnym najstarszym uczniem i ostatnim z trzech rzędów zwróconych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwrócić kolumny liczb całkowitych i liczbowych z MySQL jako liczby całkowite i numeryczne w PHP?

  2. Skuteczne strategie tworzenia kopii zapasowych i odzyskiwania danych MySQL/MariaDB

  3. Jak naprawić podwójnie zakodowane znaki UTF8 (w tabeli utf-8)

  4. BAZA DANYCH MYSQL DROP

  5. Jak działa operator LIKE w MySQL