Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Select dla id z przerwami
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cześć. Czy da się zrobić w SQL zapytanie które wyświetli ID których różnica do następnego lub poprzedniego wynosi X ? Innymi słowy załóżmy że mam w bazie rekordy o id kolejno od 1 do 100, ale nie ma od 101 do 120. Potem od 121 jest dalej do 300. Za X przyjmuje 10 więc zapytanie powinno mi zwrócić 2 wartości tj. 100 oraz 121, bo 121 minus 100 jest większe równe 10. Da się tak samym SQL? Php to wiem jak to zrobić ale jest to nieoptymalne rozwiązanie.
Dzięki z góry.

Ten post edytował sadistic_son 20.06.2021, 12:07:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. SELECT t1.id, t2.id
  2. FROM (
  3. SELECT @numer:=@numer+1 AS numer, id
  4. FROM tabela, (SELECT @numer:=0) AS n
  5. ) AS t1
  6. INNER JOIN (
  7. SELECT @numer2:=@numer2+1 AS numer, id
  8. FROM tabela, (SELECT @numer2:=0) AS n
  9. ) AS t2 ON CAST(t2.id AS SIGNED)- CAST(t1.id AS SIGNED)>=10 AND t2.numer-t1.numer=1
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: 16.10.2025 - 21:40