Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySql][Php] Wyciągnięcie z tabeli minimalnej róznicy między...
Forum PHP.pl > Forum > Bazy danych > MySQL
okoolarnik
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.
todziu
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.
Quadina
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?
todziu
Quadina masz racje mój bład zakładałem, że zmienna $x = 1 sciana.gif
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-2025 Invision Power Services, Inc.