Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с выборокой max значений
 
 автор: Gus   (19.07.2010 в 11:41)   письмо автору
 
 

Имеется такая таблица:

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 я не знаю.
Помогите составить запрос

  Ответить  
 
 автор: ols   (19.07.2010 в 12:03)   письмо автору
 
   для: 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

  Ответить  
 
 автор: gus   (19.07.2010 в 12:07)   письмо автору
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

  Ответить  
 
 автор: ols   (19.07.2010 в 12:21)   письмо автору
 
   для: gus   (19.07.2010 в 12:07)
 

Приложите дамп таблицы с несколькими записями (и отрицательными занчениями столбца value) тоже

  Ответить  
 
 автор: gus   (19.07.2010 в 14:23)   письмо автору
 
   для: ols   (19.07.2010 в 12:21)
 

вот ссылка http://dubna.tk/dubna.tk.zip

  Ответить  
 
 автор: Trianon   (19.07.2010 в 14:46)   письмо автору
 
   для: gus   (19.07.2010 в 14:23)
 

так поле value как было varchar, так и осталось.

  Ответить  
 
 автор: gus   (19.07.2010 в 14:52)   письмо автору
 
   для: Trianon   (19.07.2010 в 14:46)
 

мне и нужно чтобы оно было varchar, возможно налету для функции max его преобразовать?

  Ответить  
 
 автор: Trianon   (19.07.2010 в 15:41)   письмо автору
 
   для: gus   (19.07.2010 в 14:52)
 

можно.
Но покамест я не представляю, почему бы Вам нужно такое безобразие чтобы оно было varchar, понятное дело - буду считать это ненужным, даже вредным.

  Ответить  
 
 автор: ols   (19.07.2010 в 15:10)   письмо автору
 
   для: gus   (19.07.2010 в 14:23)
 

Видимо, дело в настройках MySQL-сервера. У меня запрос работает работает нормально. Возможно, дело в кодировке и версии сервера.

  Ответить  
 
 автор: gus   (20.07.2010 в 10:02)   письмо автору
 
   для: 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

  Ответить  
 
 автор: ols   (20.07.2010 в 16:08)   письмо автору
 
   для: gus   (20.07.2010 в 10:02)
 

А почему соответсвующий тип данных не хотите выбрать? В чем причина?

  Ответить  
 
 автор: gus   (22.07.2010 в 09:55)   письмо автору
 
   для: ols   (20.07.2010 в 16:08)
 

все скрипты написаны для работы с varchar. переделывать нету времени.
может подскажите как быть?

  Ответить  
 
 автор: Valick   (22.07.2010 в 10:50)   письмо автору
 
   для: gus   (22.07.2010 в 09:55)
 

Попробую достучаться до Вас с тылу...
Предствате что Вы прищемили палец в дверном проеме и сами же тянете за дверь... больно... орете...
Вам пердложили чуть приоткрыть и вынуть палец, вместо этого Вы продолжаете тянуть дверь на себя и спрашиваете чем можно помазать палец, что бы было не так больно.
___
Может поймете тогда, когда вместо пальца прищемите чё-нить посерьезнее. (аллегория)

  Ответить  
 
 автор: gus   (20.07.2010 в 15:54)   письмо автору
 
   для: 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   (21.07.2010 в 14:52)   письмо автору
 
   для: gus   (20.07.2010 в 15:54)
 

Неужели больше нету идей или возможностей mysql?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования