Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отсортировать char данные по числовому значению. 
:(
    Опции темы
Coder
Дата 13.8.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Для хранения данных в колонке выбран тип char(20), но там хранятся самые обычные числа. 
Если сделать такой запрос:

>select numb from nv_c order by numb asc;

то вывод будет такой:

Код

numb
---------------
1
10
18
19
2
20
21


Вопрос в том, как отсортировать данные по возрастанию, учитывая их числовое значение?
PM MAIL   Вверх
Akina
Дата 13.8.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

order by val(numb)
или аналог в конкретном диалекте (cast, strtodbl, etc.)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ama_kid
Дата 13.8.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



...order by INT(numb)...?


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Coder
Дата 14.8.2008, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Не получается:

Код

mysql> select * from nv_cars order by INT(numb);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near 'INT(numb)' at line 1

mysql> select numb from nv_cars order by cast(numb);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near ')' at line 1

mysql> select numb from nv_cars order by cast(numb as integer);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near 'integer)' at line 1


База MySQL.

Это сообщение отредактировал(а) Coder - 14.8.2008, 01:25
PM MAIL   Вверх
Akina
Дата 14.8.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Ну русским же по белому пишут: 
Цитата
check the manual 

Код

select numb from nv_cars order by cast(numb as signed);



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.