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

Реклама

  • Архив

    «   Декабрь 2019   »
    Пн Вт Ср Чт Пт Сб Вс
                1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30 31          

Как заставить правильно работать функцию 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
Надеюсь кому то данный пост принесет пользу и он не потратит столько времени кака я на бесплодные поиски или более сложные решения.
Сайт создан, поддерживается и развивается студией Хэлпос - Новочеркасск
Перед копированием материалов свяжитесь с нами и получите на то разрешение по тел. +7 (8635) 29-35-12 или по e-mail.