powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка валют
6 сообщений из 6, страница 1 из 1
Сортировка валют
    #39314568
Фотография Alexei772
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте

Таблица:

value, currency

Пример заполнения:
100, rur
100, usd
100, eur
200, eur
200, usd
300, rur

Хочу отсортировать таким образом чтобы получилось сначала доллары, потом евры, потом рубли

В голову пришел такой путь реализации задачи:

Код: sql
1.
2.
3.
4.
5.
6.
select 
* 
,IF(`currency`='usd','1',IF(`currency`='eur','2',IF(`currency`='rur','3','')))
as `sort`
from tbl
order by `sort`



Можно как-то иначе сделать?
...
Рейтинг: 0 / 0
Сортировка валют
    #39314572
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexei772Здравствуйте

Таблица:

value, currency

Пример заполнения:
100, rur
100, usd
100, eur
200, eur
200, usd
300, rur

Хочу отсортировать таким образом чтобы получилось сначала доллары, потом евры, потом рубли

В голову пришел такой путь реализации задачи:

Код: sql
1.
2.
3.
4.
5.
6.
select 
* 
,IF(`currency`='usd','1',IF(`currency`='eur','2',IF(`currency`='rur','3','')))
as `sort`
from tbl
order by `sort`



Можно как-то иначе сделать?

Код: sql
1.
2.
...
ORDER BY (`currency`='rur'),(`currency`='eur'),(`currency`='usd')
...
Рейтинг: 0 / 0
Сортировка валют
    #39314575
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexei772Можно как-то иначе сделать?Конечно. Нормализовать данные, вынеся валюты в отдельную таблицу. И там либо добавить поле порядка при сортировке, либо просто ввести данные так, чтобы данному порядку соответствовали ID-ы.
Это если не рассматривать идиотские варианты типа
Код: sql
1.
ORDER BY REVERSE(`currency`)
...
Рейтинг: 0 / 0
Сортировка валют
    #39314578
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexei772Здравствуйте

Таблица:

value, currency

Пример заполнения:
100, rur
100, usd
100, eur
200, eur
200, usd
300, rur

Хочу отсортировать таким образом чтобы получилось сначала доллары, потом евры, потом рубли

В голову пришел такой путь реализации задачи:

Код: sql
1.
2.
3.
4.
5.
6.
select 
* 
,IF(`currency`='usd','1',IF(`currency`='eur','2',IF(`currency`='rur','3','')))
as `sort`
from tbl
order by `sort`



Можно как-то иначе сделать?

Код: sql
1.
2.
3.
order by find_in_set(`currency`,'usd,eur,rub')

order by field(`currency`,'usd','eur','rub')
...
Рейтинг: 0 / 0
Сортировка валют
    #39314585
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
order by position(`currency`, 'usd-eur-rub');

order by locate(`currency`, 'usd-eur-rub');

order by instr(`currency`, 'usd-eur-rub');



ну и костылей накину

1) хранить кирренси ввиде
'01usd','02eur','03rub'

а при выводе срезать два знака

2)раз уж таблица всеравно денормализованна, то можно есчё и рядом с каренси хранить порядок(есчё один столбик)
...
Рейтинг: 0 / 0
Сортировка валют
    #39314586
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexei772Здравствуйте

Можно как-то иначе сделать?

вариантов как г%%на...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка валют
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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