Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlanie określonej ilości rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
mrm
załóżmy że mamy tablicę zawierającą 10 rekordów:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |9 |10 |,
czy jest możliwe wyświetlenie 4 rekordów rozpoczynając od 9 i kończąc na 2 (czyli zeby wyswietlily sie rekordy 9,10, 1,2) za pomocą jednego selekta.
Vogel
  1. SELECT *
  2. FROM twoja_tabela
  3. WHERE id IN (1,2,9,10)
mrm
Nie do końca o to mi chodziło...,

po pierwsze tablica zawiera 10 rekordów, ale ich id to nie jest 1,2...10 itd

po drugie ważna jest kolejność, tak aby najpierw wyświetliły się 2 ostatnie rekordy, a w następnej kolejności 2 pierwsze, oczywiście za pomocą jednego polecenia select
dr_bonzo
Tak to tylko w erze...


  1. SELECT *
  2. FROM tabela
  3. WHERE wartosc => 9 ORDER BY wartosc ASC LIMIT 2
  4.  
  5. // UNION -- skladni nie znam --> manual
  6.  
  7. SELECT *
  8. FROM tabela
  9. WHERE wartosc <= 2 ORDER BY wartosc DESC LIMIT 2


ale pewnie nie jest to optymalne rozwiazanie + przydalby sie indeks na kolumne wartosc.
Chrom
UNION jest używana do wyboru takich samych informacji z dwóch tabel, podobnie jak JOIN ale w UNION kalumny muszą by tego samego typu, UNION wybiera tylko różne wartości:
  1. SELECT nazwa_kolumny
  2. FROM nazwa_bazy
  3. UNION
  4. SELECT nazwa_kolumny
  5. FROM nazwa_2_bazy

czyli wyświetli dane z kolumn obu baz bez powtórzeń
UNION ALL wyświetli wszystkie wartości
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.