php естественный порядок сортировки строк выбора mysql - PullRequest
0 голосов
/ 19 апреля 2010

Я запускаю выборку, которая возвращает буквенно-цифровые результаты, например:

ABC-1
ABC-2
ABC-10
SAM-1
SAM-2
SAM-10
SAM-20

Я пытался использовать:

ORDER BY CAST(mid(field_name, 6, LENGTH(class) -5) AS unsigned)

и

ORDER BY filed_name + 0 ASC

это помогло навести порядок, но я не могу заказать -2 до -10

большое спасибо

1 Ответ

1 голос
/ 19 апреля 2010

Как насчет

ORDER BY 
  LEFT(field_name, INSTR(field_name, '-') - 1),
  CAST(
    SUBSTRING(field_name, INSTR(field_name, '-') + 1) AS INTEGER
  )
...