powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / СОРТИРОВКА ORDER BY
18 сообщений из 18, страница 1 из 1
СОРТИРОВКА ORDER BY
    #39172687
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужен совет, кто-нибудь сталкивался?
Есть два параметра по кторым нужно отсортировать данные в таблице. Сначала по номеру чертежа, затем по порядковому номеру ввода (дата). Проблема в том, что чертеж состоит из букв и цифр например А.1234 или Б-1234. Так вот, отсортировать нужно только по буквам (по алфавиту), а затем, после символа, уже по порядковому номеру.

То есть если я ввожу так:
1) А-1234 2) А-1233 3) Я.12345 4) К-1234 5)Я.11111

В итоге должно получиться:

А-1234
А-1233
К-1234
Я.12345
Я.11111

Заранее спасибо!
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172712
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полный номер чертежа всегда соответствует формату буква-разделитель-цифры?
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172751
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,

как описываете , так и делайте... ORDER BY по строковым функциям
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172786
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Да, именно. Либо через точку, либо через тире
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172789
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,

order by left(field), substr(field,3)
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172805
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,

возможно полезнее будет привести все к одному виду (выбрать один стандартный разделитель)
UPDATE много сил и средств не затратит...
и просто ORDER BY NumCherteg - это гораздо проще и эффективнее
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172824
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovвозможно полезнее будет привести все к одному виду (выбрать один стандартный разделитель)Вполне себе вариант. Но я бы посчитал разделение этого поля на два ещё более правильным. Заодно разделитель стандартизуется "сам по себе".
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172828
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привести к общему раз делителю, к сожалению, не вариант. Так задумано не мной. Спасибо за советы, сейчас попробую.
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172839
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,

ну да, если по ЕСКД, то там все как то красиво, но грустно для реализации
Иногда имеет смысл ввести новое поле и в триггере вставлять в него форматированную нумерацию (допустим формат группа1-группа2-группа3 с добавлением лидирующих знаков), но это лирика...частные случаи, все зависит от ваших объемов и критериев
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172901
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то у меня не выходит. Каким образом вообще можно отделить буквенную часть от численной в чертеже (учитывая что там символ какой-то обязателен) ? А потом может от этого отталкиваться уже
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172910
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,
отделяйте что хотите...
tanglir
Код: sql
1.
2.
3.
ilovemutu,

order by left(field), substr(field,3)
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172912
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutuКаким образом вообще можно отделить буквенную часть от численной
Дубово - пользовательской функцией, которая ищет первый символ-цифру.
Но если формат именно такой:

Строго одна буква (не две и не три)
+ строго один символ-разделитель
+ несколько цифр

то нет проблем:

Код: sql
1.
ORDER BY LEFT(field, 1), CAST(SUBSTRING(field,3) AS UNSIGNED)


Если же блок, что с цифрами, надо интерпретировать и сортировать как строку, а не как число - то убираем CAST.
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172919
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если чертежи названы черт знает как
Эскиз.12345
Ск-4129
Либо вообще 731-160-3А
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172922
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutuА если чертежи названы черт знает как
Эскиз.12345
Ск-4129
Либо вообще 731-160-3Атогда надо искать позицию разделителя и дальше работать от неё.
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172928
ilovemutu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если чертежи названы черт знает как
Эскиз.12345
Ск-4129
Либо вообще 731-160-3А
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172931
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutuА если
Тогда только "дубовый" вариант.
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39172977
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutuА если чертежи названы черт знает как
Эскиз.12345
Ск-4129
Либо вообще 731-160-3Авот по этим данным - что должно получится?

а так...


)) тоже самое только "комплексный" подход... функция от функции ...
1. REPLACE(myfield, ".","-") - приводим к одному разделителю!!! пусть всегда будет "-"
2. Теперь применяем к полученному SUBSTRING_INDEX(pole_iz_punkta1, "-",1) - отрезаем до первого дефиса
результат -> в ORDER BY ...
...
Рейтинг: 0 / 0
СОРТИРОВКА ORDER BY
    #39173920
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemutu,


напиши выражения, которые выделяют из номера чертежа группу букв, затем группу цифр, затем группу букв и так далее, возможно тебе еще какие-то группы там нужны тоже напиши.
Пусть это будут выражения e1, e2... en.
располагаются они в порядке важности для сортировки.

теперь запиши их все в фразе order by, затем в конце припиши еще одно выражение, по чему там тебе надо еще.
и всё.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / СОРТИРОВКА ORDER BY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]