Сортировка в php/mysql

Тема в разделе "Базы данных", создана пользователем eugenel, 13 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. eugenel

    eugenel Постоялец

    Регистр.:
    3 авг 2008
    Сообщения:
    123
    Симпатии:
    14
    в phpmyadmin или запрос: "SELECT * FROM `shop_tovar` ORDER BY `price_guest` DESC LIMIT 0 , 30" сортирует так:
    1
    10
    2
    А как сделать, чтобы было правильно?:
    1
    2
    10
    ==========
    Поле: price_guest varchar(255) cp1251_general_ci
     
  2. midw0rk

    midw0rk Создатель

    Регистр.:
    1 окт 2008
    Сообщения:
    33
    Симпатии:
    7
    SELECT * FROM `shop_tovar` ORDER BY `price_guest` ASC LIMIT 0 , 3

    Хотя и DESC неправильно сортирует!
     
  3. BlackPawn

    BlackPawn Постоялец

    Регистр.:
    19 мар 2009
    Сообщения:
    75
    Симпатии:
    27
    Нужно преобразовать price_guest в числовое значение.

    SELECT cast(price_guest as integer) as price_guest FROM `shop_tovar` ORDER BY `price_guest` DESC

    или

    SELECT convert(price_guest, integer) as price_guest FROM `shop_tovar` ORDER BY `price_guest` DESC
     
  4. eugenel

    eugenel Постоялец

    Регистр.:
    3 авг 2008
    Сообщения:
    123
    Симпатии:
    14
    Разобрался. спасибо.
    Нужно преобразовать price_guest в числовое значение.
    Этот вариант что то не заработал. но за идею с типами данных, спасибо
     
  5. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
    Ну конечно не заработал, надо отсортировать по возрастанию:

    SELECT cast(price_guest as integer) as price_guest FROM `shop_tovar` ORDER BY `price_guest` ASC
     
  6. MadWizard

    MadWizard Постоялец

    Регистр.:
    24 мар 2009
    Сообщения:
    145
    Симпатии:
    20
    Скорее всего, не заработал потому, что в столбце есть нечисловые значения или null'ы.
     
Статус темы:
Закрыта.