Естественная сортировка не организует данные должным образом

0

Поэтому у меня есть этот набор данных, например:

+--------------+-----------+
| Name         | Money     |
+--------------+-----------+
| Mickey Mouse | 1,000,780 |
+--------------+-----------+
| Donald Duck  | 1,580,870 |
+--------------+-----------+
| Goofy        | 230,570   |
+--------------+-----------+

и когда я использую:

SELECT name, money FROM worth ORDER BY LENGTH(money), money

Он все еще показывает Гуфи по Микки и Дональду.

и когда я использую:

SELECT name, money FROM worth ORDER BY money +0 ASC

Он все еще показывает Микки над Дональдом. Где, когда Дональд должен быть наверху.

Я хочу устроить его по убыванию, так что Дональд-Микки-Гуфи.

  • 1
    Какой тип столбца money ?
  • 0
    Если столбец money является числом, сделайте ваш ORDER BY DESC . Более высокое значение будет сверху.
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

Я бы предложил хранить столбцы "деньги" как Decimal или Double а не VARCHAR. Но для вашего случая вы можете заказать по длине по убыванию, а затем по убыванию денег.

Следующий запрос должен работать для вас.

SELECT name, money FROM worth ORDER BY LENGTH(money) desc, money desc;
1

Хранение денег в качестве варчара - плохая идея по разным причинам - конвертируйте ее в более подходящий формат, если это вообще возможно.

В противном случае у этого вопроса есть ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню