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

SELECT * FROM table WHERE id IN(9, 4, 5, 12, 1);
выводит данные в порядке возрастания id 1, 4, 5, 9, 12

А мне хотелось бы, чтобы выводились в том порядке в котором они написаны в запросе , 4, 5, 12, 1.

Возможно ли такое осуществить?
...
Рейтинг: 0 / 0
Вывод данных
    #32863095
Biz0N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужный порядок обычно задается в ORDER BY.
Но такого порядка как идет_в_базе не существует.
Можно узнать, зачем это нужно?
Обычно программисту не интересно как данные идут в базе.
...
Рейтинг: 0 / 0
Вывод данных
    #32863540
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна нестандартная сортировка, то используется следующая техника. В SELECT вставляется дополнительный столбец, в котором подставляется значение, подходящее для сортировки, а потом делается ORDER BY по этому столбцу. Как получить это значение, зависит от задачи. Например, в данном случае в Oracle (соответствующую функцию в MySQL не помню) я бы написал так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ...., DECODE(id,   9 ,  1 ,
                                   4 ,  2 ,
                                   5 ,  3 ,
                                  12 ,  4 , 
                                    1 ,  5 ) AS Ord1
......
ORDER BY Ord1
...
Рейтинг: 0 / 0
Вывод данных
    #32875724
Boik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ещё варианты?
...
Рейтинг: 0 / 0
Вывод данных
    #32875727
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55Например, в данном случае в Oracle (соответствующую функцию в MySQL не помню) я бы написал так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ...., DECODE(id,   9 ,  1 ,
                                   4 ,  2 ,
                                   5 ,  3 ,
                                  12 ,  4 , 
                                    1 ,  5 ) AS Ord1
......
ORDER BY Ord1


В MySQL это IF, если мне память не отшибло:-)
...
Рейтинг: 0 / 0
Вывод данных
    #33045150
Reals
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Помогите пожалуйста решить эту задачу (см. первый пост).
Может все-таки кто подскажет, как можно сделать такой вывод как указан в первом посте?

Заранее благодарен!

_____________
С Уважением,
<BR>Tolik (Reals).
...
Рейтинг: 0 / 0
Вывод данных
    #33045221
ap99ap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create temporary table x ( id int, primary key(id) );
insert into x (id) values (9), (4), (5), (12), (1);
select * from x left join table t on t.id = x.id;

Временная таблица будет размещена в памяти и джойн будет быстрым.

Другое дело что совершенно непонятно зачем это может быть нужно вообще...
...
Рейтинг: 0 / 0
Вывод данных
    #33045900
Reals
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Супер!
Спасибо огромное. Все работает!

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


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