Autor Zpráva
NetHill
Profil
Ahoj všichni,
mám tabulku v MySQL ze sloupci
id, nazev, cislo
a chtěl bych vytvořit dotaz, který mi vypíše jeden řádek, kde cislo je nejblíže mojí proměnné $cislo a to jak směrem dolů tak i nahoru.

tzn.: mám tyto řádky:

id, nazev, cislo
1, hlava, 50
2, mozek, 60
3, ledvina, 100

a když bude proměnná $cislo = 70;
chci vypsat řádek s id 2 jelikož cislo je nejblíže 70,

když bude proměnná $cislo = 90;
chci vypsat řádek s id 3 jelikož cislo 100 je nejblíže 90,

Lépe už to asi nevysvětlím... nevím si s tím rady, mockrát děkuji za informace...


No doufám, že to někdo pochopí...
Alphard
Profil
co třeba vybrat 2 řádky pomocí union a v aplikaci zjistit, který je blíž?

select * from tabulka where cislo < $cislo order by cislo desc limit 1
union
select * from tabulka where cislo > $cislo order by cislo limit 1

jestli to musí být v sql, tak třeba uložená procedura, nebo počkej so vymyslí kajman_ :-)
Kajman_
Profil *
order by abs(cislo-$cislo) limit 1

Ale asi bych to udělal až na těch dvou řádcích, co vybírá Alphard, mělo by to být rychlejší.
NetHill
Profil
Alphard
Díky moc, je to přesně to co hledám... že mně tohle řešení nenapadlo :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.