лексографический порядок сортировки по численному полю

kewluser

Новичок
лексографический порядок сортировки по численному полю

Господа!

Столкнулся вот с какой проблемой, мой MySQL версии 4 сортирует данные из столбца типа FLOAT в лексографическом порядке, а не численном. Например 4.00 оказывается больш чем 10.00.

Я так понимаю проблема известная, как бороться?
 

Wicked

Новичок
я тебе не верю :)

приведи пример структуры таблицы, запроса (пхп-кода, если таковой может повлиять).

Я сделал таблицу со столбцом типа флоат, забил туда 4.00 и 10.00, сделал select * from flt order by num desc; из EMS - все ок.
 

kewluser

Новичок
да я сам себе не верю! пример и как я эту проблему решил чуть позже

-~{}~ 17.03.06 12:04:

причем проблема есть, только в том случае, если в столбце типа float находятся данные с большим количеством цифр в дрбоной части, то есть на простых примерах 4.00 и 10.00 у меня тоже не проявляется

-~{}~ 17.03.06 12:10:

Вот пример лексографической сортировки по полю FLOAT:

mysql> select exec_time from ka_gui_stat where unix_timestamp(at) between 1142570924 and 1142572070 order by 1 desc limit 15;
+--------------------------------------------------------+
| exec_time |
+--------------------------------------------------------+
| 4.42699999999999960209606797434389591217041015625 |
| 3.423071999999999892594360062503255903720855712890625 |
| 3.27926200000000012124701243010349571704864501953125 |
| 10.0810440000000003379909685463644564151763916015625 |
| 1.236798999999999981724840836250223219394683837890625 |


такое ощущение что из-за очень высокой точности этих чисел MySQL выбирает или сохраняет их в БД как строки, не смотря на явное указание типа поля как FLOAT
 
Сверху