|
|
|
| Имеется такая таблица:
CREATE TABLE `indoor` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`value` varchar(7) NOT NULL,
`data` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=732651 /*!40101 DEFAULT CHARSET=latin1 */;
Поля value принемают значения от -40.0 до 55.55
У меня никак не получается составить запрос для вывода 10 максимальных значений из таблицы.
функция max выдаёт 9.9 .... а как преобразовать тип varchar к float я не знаю.
Помогите составить запрос | |
|
|
|
|
|
|
|
для: Gus
(19.07.2010 в 11:41)
| | >функция max выдаёт 9.9 .... а как преобразовать тип varchar к float я не знаю.
ALTER TABLE, например. В PMA можно визуально изменить тип данных.
Запрос примерно такой
SELECT MAX(value) AS maxValue FROM indoor GROUP BY id ORDER BY maxValue LIMIT 10
|
| |
|
|
|
|
 60.6 Кб |
|
|
для: ols
(19.07.2010 в 12:03)
| | не работает выдаёт:
maxValue
-0,0
-0,0
-0,0
-0,0
-0,0
-0,0
-0,0
-0,0
-0,0
-0,0 | |
|
|
|
|
|
|
|
для: gus
(19.07.2010 в 12:07)
| | Приложите дамп таблицы с несколькими записями (и отрицательными занчениями столбца value) тоже | |
|
|
|
|
|
|
|
для: ols
(19.07.2010 в 12:21)
| | вот ссылка http://dubna.tk/dubna.tk.zip | |
|
|
|
|
|
|
|
для: gus
(19.07.2010 в 14:23)
| | так поле value как было varchar, так и осталось. | |
|
|
|
|
|
|
|
для: Trianon
(19.07.2010 в 14:46)
| | мне и нужно чтобы оно было varchar, возможно налету для функции max его преобразовать? | |
|
|
|
|
|
|
|
для: gus
(19.07.2010 в 14:52)
| | можно.
Но покамест я не представляю, почему бы Вам нужно такое безобразие чтобы оно было varchar, понятное дело - буду считать это ненужным, даже вредным. | |
|
|
|
|
|
|
|
для: gus
(19.07.2010 в 14:23)
| | Видимо, дело в настройках MySQL-сервера. У меня запрос работает работает нормально. Возможно, дело в кодировке и версии сервера. | |
|
|
|
|
|
|
|
для: ols
(19.07.2010 в 15:10)
| | ну как же быть?
SELECT version( ) ;
5.0.45-community-nt
my.conf
default-character-set =cp1251
character-set-server = cp1251
collation-server = cp1251_general_ci
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K | |
|
|
|
|
|
|
|
для: gus
(20.07.2010 в 10:02)
| | А почему соответсвующий тип данных не хотите выбрать? В чем причина? | |
|
|
|
|
|
|
|
для: ols
(20.07.2010 в 16:08)
| | все скрипты написаны для работы с varchar. переделывать нету времени.
может подскажите как быть? | |
|
|
|
|
|
|
|
для: gus
(22.07.2010 в 09:55)
| | Попробую достучаться до Вас с тылу...
Предствате что Вы прищемили палец в дверном проеме и сами же тянете за дверь... больно... орете...
Вам пердложили чуть приоткрыть и вынуть палец, вместо этого Вы продолжаете тянуть дверь на себя и спрашиваете чем можно помазать палец, что бы было не так больно.
___
Может поймете тогда, когда вместо пальца прищемите чё-нить посерьезнее. (аллегория) | |
|
|
|
|
|
|
|
для: gus
(19.07.2010 в 14:23)
| | Попробовал побороть так:
SELECT distinct(max(CAST(value AS SIGNED)))as vvv FROM indoor GROUP BY value ORDER BY id desc limit 15;
результат какойто странный:
36
35
-26
-25
-24
-23
34
33
32
31
30
29
28
27
26 | |
|
|
|
|
|
|
|
для: gus
(20.07.2010 в 15:54)
| | Неужели больше нету идей или возможностей mysql? | |
|
|
|