php - MySQL query on money format -
i got table prices has values similar following:
price ----------- 21,781.00 27,615.00 46,565.00 46,565.00 48,565.00 571.00 830.00 0.00
by doing query:
select * tprice order price=0, convert(price, decimal) asc
i following result:
21,781.00 27,615.00 46,565.00 46,565.00 48,565.00 571.00 830.00
and, doing query:
select * tprice order price=0, convert(price, decimal) desc
i
830.00 571.00 48,565.00 46,565.00 46,565.00 27,615.00 21,781.00 0.00
why 830.00 , 571.00 not been ordered properly?
edit:
i've changed query to:
select * tprice order price=0, replace(',','',price), price asc
it seems working "a bit better". result:
830.00 571.00 48,565.00 46,565.00 46,565.00 27,615.00 21,781.00 0.00
still trying other variations...
select price, convert(replace(replace(price, ",", ""), ".", ""),unsigned integer) formattedprice testtest order formattedprice;
this should work.
explanation: saved numbers string in database. removing except numbers , converting unsigned int solves problem.
Comments
Post a Comment