За последние 24 часа нас посетили 22892 программиста и 1272 робота. Сейчас ищут 804 программиста ...

Сортировка по букве и числу

Тема в разделе "PHP и базы данных", создана пользователем ufaclub, 8 фев 2015.

  1. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    как сделать сортировку $query = 'SELECT * FROM cms_build WHERE title =3 and Order by section ASC, number ASC';

    Чтобы был порядок Б1,Б2,Б3,Б4,......Б15,Б16,Б17

    Сейчас получается вот так Б1,Б15,Б16,Б17,Б2,Б3...
    тип ячейки section - (text) - может в этом дело?
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    надо чтобы был порядок Б01,Б02,Б03,Б04,......Б15,Б16,Б17
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Можно выкрутиться грязными трюками с substr, но лучше изменить сами данные.

    p.s. хранить такие короткие строки в поле типа text очень расточительно. используй varchar или char.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Нужна так называемая natural sort
    Вот тут пример: http://www.copterlabs.com/blog/natural-sorting-in-mysql/
    Код (PHP):
    1. SELECT alphanumeric, integer
    2.        FROM sorting_test
    3.        ORDER BY LENGTH(alphanumeric), alphanumeric