Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Szukanie rekordu wraz z innymi
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Witam. Jak powinno wygladać zapytanie, które wyszuka mi 1 rekord (np. o numerze 100) i zwróci mi go wraz z "pobocznymi" czyli np. 10 w jedną stronę oraz 10 w drugą (czyli 21 rekordów) .... da rade zrobić w ogóle coś takiego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tort
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 15.09.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Można to zrobić na przykład tak:
  1. (SELECT *
  2. FROM tabela
  3. WHERE id<100
  4. ORDER BY id DESC LIMIT 10)
  5. UNION
  6. (SELECT *
  7. FROM tabela
  8. WHERE id=100)
  9. UNION
  10. (SELECT *
  11. FROM tabela
  12. WHERE id>100
  13. ORDER BY id ASC LIMIT 10)

i masz 10 rekordów w jedną stronę, 10 w drugą, i ten, o który ci chodzi dokładnie w środku.

Można też zrobić to w ten sposób:
  1. SELECT *
  2. FROM tabela
  3. WHERE id=100 OR id
  4. IN (SELECT id
  5. FROM tabela
  6. WHERE id<100
  7. LIMIT 10) OR id
  8. IN (SELECT id
  9. FROM tabela
  10. WHERE id>100
  11. LIMIT 10)
  12. ORDER BY id

o ile dysponujesz podzapytaniami.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 05:04