Forum Webscript.Ru

Общие => Базы данных => Тема начата: wheelszeus от 25 Января 2005, 17:46:37

Название: Упорядочивание записей...
Отправлено: wheelszeus от 25 Января 2005, 17:46:37
Здравствуйте уважаемые.
У меня есть таблица в MySQl:
create table price (
id int not null auto_increment,
add_date datetime,
name varchar(255) not null,
price_s varchar(25) not null,
primary key(id)
);
в столбце price_s вот такие значения 990005, 999005, 1000000.
Делаю запрос SELECT * FROM price ORDER BY price_s DESC;
Типа хочу упорядочить по столбцу price_s, но почему то получается так, что он сначало выводит 999005, а потом только 1000000, хотя последнее больше. Почему? Дело в запросе? Может как то иначе составить запрос? Или на пхп сделать какую нить функцию?
Заранее спасибо.
Название: Упорядочивание записей...
Отправлено: Меняздесьдавнонет от 25 Января 2005, 18:03:05
хранить надо данные в полях того типа, которые для них предназначены.
к пхп вопрос не имеет ни малейшего отношения.
Название: Упорядочивание записей...
Отправлено: commander от 25 Января 2005, 18:11:33
Цитировать
в столбце price_s вот такие значения 990005, 999005, 1000000.

все цены желательно хранить в типе данных int.

P.S. существуют так же типы данных ориентированные именно по цены аля:  (money, numeric(n, 2)) но эти типы надо использовать с осторожностью дабы небыло неточностей при сокращинии...
Название: Упорядочивание записей...
Отправлено: Croaker от 25 Января 2005, 18:15:03
wheelszeus

Дело в запросе. Поле price_s у тебя строковое, а ты хочешь, чтобы оно сортировалось как число.

Либо измени тип поля price_s на INTEGER (или DOUBLE, что правильней, т.к. цена может содержать десятичную и сотую части), либо пошарься по ману MySQL - там должна быть функция привидения типов (как зовется - не помню).
Название: Упорядочивание записей...
Отправлено: Croaker от 25 Января 2005, 18:16:10
Цитировать
commander:
существуют так же типы данных ориентированные именно по цены аля: money


в MySQL?
Название: Упорядочивание записей...
Отправлено: commander от 25 Января 2005, 18:21:35
Croaker
аля money ... :)
Название: Упорядочивание записей...
Отправлено: ThE0ReTiC от 25 Января 2005, 20:40:36
commander
float называется
Название: Упорядочивание записей...
Отправлено: Макс от 25 Января 2005, 21:28:07
Судя по обсуждениям в сети, в mysql  использовать float не рекомендуется для хранения денежных сумм.
Цены хранят в копейках - то есть используется тип INT
Название: Упорядочивание записей...
Отправлено: Меняздесьдавнонет от 25 Января 2005, 23:07:44
не int, а decimal