Jump to content
php.lv forumi

dabūt līdzīgus ciparus


Robis

Recommended Posts

Sveiki!

Kā es varu dabūt līdzīgu ciparu, īstenībā doma tāda:

 

ir lauks "cipars", kuram var būt integer vērtība!

 

Kā lai izdaru tā, ka lai man viņš atrod konkrētu ierakstu, kura "cipars" ir tuvakais uz leju no manis meklētā! Vai arī tuvākais uz augšu!

 

Pieņemsim, laukam cipari ir vērtības:

1, 3, 4,5,9,10,16

 

Tagad ja man ir cipars 5, tuvākais uz leju būs 4, bet uz augšu 9! Tā lūk!

Link to comment
Share on other sites

uz augšu: SELECT cipars FROM tabula WHERE cipars>$dotais ORDER BY cipars LIMIT 1

uz leju: SELECT cipars FROM tabula WHERE cipars<$dotais ORDER BY cipars DESC LIMIT 1

Tik ņem vērā gadījumu, kad kverijs neatgriež neko - nav attiecīgā cipara.

Link to comment
Share on other sites

Nu var mēģināt manuprāt arī kaut kā šādi (atradīs kaut ko vienmēr):

Pieņemsim ka jāatrod tuvākais '5':

 

SELECT cipars FROM tabula ORDER BY ABS(cipars - 5) ASC LIMIT 1;

 

Attiecīgi ja ieliksi LIMIT 2 tad atradīs divus tuvākos ciparus (protams var sanākt ka divi tuvākie uz vienu pusi (t.i. vai nu abi lielāki vai mazāki)).

Link to comment
Share on other sites

×
×
  • Create New...