Как отсортировать данные в порядке убывания на основе строкового столбца? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь получить список данных в порядке убывания из моей базы данных.Но он не дает желаемого результата.

  • имя таблицы: testing
  • имя столбца: id(pk), fiscal_no

Мой запрос : SELECT * FROM `testing` ORDER BY fiscal_no DESC

Для этого запроса я получаю этот результат

enter image description here

Но я хочу получить результат, который должен быть описан fiscal_no следующим образом: fiscal_no last num

enter image description here

Доступен ли какой-либо запрос для такого результата?

Ответы [ 6 ]

0 голосов
/ 07 февраля 2019

Я бы использовал substring_index():

order by substring_index(fiscal_no, '#', -1) desc,
         fiscal_no desc

Если вы знаете, что это всегда последние три символа, то вы можете использовать right():

order by right(fiscal_no, 3) desc,
         fiscal_no desc
0 голосов
/ 07 февраля 2019

Проверьте, может ли reverse или cast что-то сделать в этом

ORDER BY REVERSE(fiscal_no) DESC

OR 

ORDER BY CAST(fiscal_no AS UNSIGNED) DESC
0 голосов
/ 07 февраля 2019

Вы можете попробовать:

SELECT * FROM testing ORDER BY SUBSTRING(fiscal_no,13,3) DESC;

SUBSTRING Синтаксис функции:

SUBSTRING(string, start, length)

Но я предлагаю вам лучше переделать схему таблицыВаш дизайн таблицы не соответствует 1NF .

0 голосов
/ 07 февраля 2019

Предполагая, что целочисленное значение - это последние 3 символа во всех значениях в столбце fiscal_no, вы можете сделать один из обходных путей:

SELECT * FROM testing ORDER BY substring(fiscal_no,-3) DESC;
0 голосов
/ 07 февраля 2019

Попробуйте это

SELECT * FROM testing ORDER BY substring(fiscal_no,13,3) DESC;
0 голосов
/ 07 февраля 2019

SYN # JOB # F EB на самом деле раньше SYN # JOB # J AN в порядке убывания.

Вы должны рассмотреть функцию SUBSTRING (илииногда SUBSTR) для сортировки, начиная с 13-го символа столбца fiscal_no.

Если вы используете MySQL, то здесь ref .Оператор сортировки должен быть:

ORDER BY SUBSTRING(fiscal_no, 13) DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...