Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySql][Php] Wyciągnięcie z tabeli minimalnej róznicy między...
okoolarnik
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.11.2006

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


Witam

Czy istnieje sposób by w miarę wydajnie (w sensie: nie obciążając serwera) wyciagnąć z tabeli rekordy, w których róznica między zdefiniowaną zmienną, a zawartością komórki w tabeli jest najmniejsza?

Konkretnie definiuje zmienna np $x=1250.
W tabeli mam rózne kolumny a wśród nich kolumnę "V".
Rekordów jest wiele, ale mnie interesują tylko te, w których róznica $x-V jest najmniejsza.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
todziu
post
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 16.08.2006

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


Mysle ze mozna to w ten sposob zrobic sortujesz kolumne V od najmniejszej:

  1. SELECT kol_V FROM tabela ORDER BY kol_v ASC;


wyciągasz np. pierwsze 5 wiersz i odejmujesz w petli od ich wartosci zmienna $x lub jezeli chcesz wyciagnac tylko jeden rekord z bazy tz najmniejsza roznice
dodajesz na koncu zapytania LIMIT 1


Pozdr.

Ten post edytował todziu 1.12.2010, 08:26:03
Go to the top of the page
+Quote Post
Quadina
post
Post #3





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

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


Od razu z bazy można wyciągnąć najmniejszą różnicę:
  1. $query = "SELECT kol_V FROM tabela ORDER BY ABS(kol_V-".$zmienna.") ASC LIMIT 1";



@todziu: Twój pomysł jest niestety nie logiczny. Jeżeli pierwsze 5 będzie np: 1,3,5,7,9, a on chce różnicę pomiędzy 1250 a 1500? Zwrócimy mu 1?

Ten post edytował Quadina 1.12.2010, 13:27:36


--------------------
Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
Go to the top of the page
+Quote Post
todziu
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 16.08.2006

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


Quadina masz racje mój bład zakładałem, że zmienna $x = 1 sciana.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 06:32