Карта Новочеркасска      Каталог фирм      TOP      Чат      Знакомства      PDA-версия
         Новочеркасск в сети
 

Реклама

Как заставить правильно работать функцию mysql max() в поле типа varchar

Столкнулся с проблемкой: в mysql таблице имеется поле типа varchar, в котором хранятся числа в виде 1 1.2 1.1.3 и т.д.
допустим у нас 10 записей 1,2,3..10 как вы думаете что выдаст запрос

Код
   SELECT MAX(`fld_varchar`) FROM `table`

Именно число 9, хотя максимальное число у нас 10... все это обуславливается тем, что сортировка идет между строками а если сравнивать строку '9' и '10', то первая будет больше, т.к. символов в ней всего 1, а '10' состоит уже из 2-х.
Для обхода данной проблемы нужно использовать следующий запрос:

Код
   SELECT MAX(`fld_varchar`*1) FROM `table`

данный запрос уже вернет число 10
Надеюсь кому то данный пост принесет пользу и он не потратит столько времени кака я на бесплодные поиски или более сложные решения.
Николай
24.06.2010 22:37:36
Хороший сайт, не жалко потраченого времени.
Irbis
18.08.2010 16:24:24
Спасибо огромное за хинт!! )
Леонид
18.09.2010 20:55:20
RE: Как заставить правильно работать функцию mysql max() в поле типа varchar
спасибо за статейку
Бронислава
29.10.2010 15:06:10
RE: Как заставить правильно работать функцию mysql max() в поле типа varchar
Читаю уже не первую неделю Ваш блог, узнаю много интересного. Спасибо Вам за Ваш труд!
Артур
08.11.2010 16:06:08
RE: Как заставить правильно работать функцию mysql max() в поле типа varchar
Да это всё уже толи у Маула, толи у Давыдова жевалось по нескольку раз
Илья
10.12.2010 18:08:39
RE: Как заставить правильно работать функцию mysql max() в поле типа varchar
Я вам очень благодарен, мне понравилось.
Сайт создан, поддерживается и развивается студией Хэлпос - Новочеркасск
Перед копированием материалов свяжитесь с нами и получите на то разрешение по тел. +7 (8635) 29-35-12 или по e-mail.