Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
kucera34
Člen
Avatar
kucera34:8.5.2014 23:30

Mám dotaz.
Jak sestavit dotaz :-) aby vyhledal nejbližší vyšší,stejná,nebo nižší hodnota
k mnou zadaé hodnotě je ale možné že tato hodnota ve sloupci tabulky neexistuje a proto chci hledat aspoň tu nižší nebo vyšší

Používán sqlite ale myslím že to bude dost podobné i jinde.

Díky moc .....

 
Odpovědět
8.5.2014 23:30
Avatar
Odpovídá na kucera34
Drahomír Hanák:9.5.2014 0:36

Napadá mě, seřadit si výsledky podle toho, jak jsou daleko od zadané hodnoty a vybrat jeden.

SELECT value FROM table ORDER BY ABS(value-:hodnota) LIMIT 1

Taková query ale samozřejmě nebude moct použít případný index na value.

 
Nahoru Odpovědět
9.5.2014 0:36
Avatar
Odpovídá na kucera34
Michal Štěpánek:9.5.2014 7:55

Nevím, jestli to jde vcucnout do jednoho dotazu, ale nejbližší vyšší nebo stejné bych asi hledal nějak takto:

SELECT neco FROM tabulka WHERE (neco >= moje zadaná hodnota) ASC

a nižší nebo stejné:

SELECT neco FROM tabulka WHERE (neco <= moje zadaná hodnota) DESC

Vždycky první záznam z toho dotazu je to co hledáš

Editováno 9.5.2014 7:56
Nahoru Odpovědět
9.5.2014 7:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.