Сортировка отностиельно WHERE id in (...)

Benderlio

Новичок
Сортировка отностиельно WHERE id in (...)

Добрый день,
есть запрос который выбирает некоторые значения
упорядочены по времени
2985,1134,2578,2580,567,3738,4077,3077,960,1728,3607,1219,1741,2894,4783,2605,404,875,2726,4326,2308,322,109,396,452

потом есть запрос

SELECT id,name,img,SUBSTRING(descr,1,250) as des
FROM film
WHERE id in (2985,1134,2578,2580,567,3738,4077,3077,960,1728,3607,1219,1741,2894,4783,2605,404,875,2726,4326,2308,322,109,396,452 )
сейчас он выдает результаты сортируя по id

как мне его сортировать относительно строки 2985,1134,2578,2580,567,3738,4077,3077,960,1728,3607,1219,1741,2894,4783,2605,404,875,2726,4326,2308,322,109,396,452 ?

Спасибо.
 

A1x

Новичок
наверно можно так:
order by FIND_IN_SET(id, '2985,1134,2578,2580,567,3738,4077,3077,960,1728,3607,1219,1741,2894,4783,2605,404,875,2726,4326,2308,322,109,396,452')
 

Benderlio

Новичок
это разные бд
сделать join не получится.. (или я просто не знаю как с джойнить две БД)

A1x
спасибо, сейчас попробую

-~{}~ 08.09.08 15:50:

гм,
все равно не так...
все вразнобой идет
 

Gas

может по одной?
Benderlio
покажи запрос которым пробуешь, должно работать.
 

Benderlio

Новичок
SELECT id,name,img,SUBSTRING(descr,1,170) as descr FROM film WHERE id in (452,396,4783,960,51,788,1728,600,4359,944,2985,4063,567,899,404,3607,276,4018,109,1013,322,2166,1741,2308,4326,667,2075,875,2726,2605,1421,2894,1219,1622,4223,3077,1827,3997,3738,4077,166,3828,3484,2580,2283,2578,1134,1809,3703 ) order by FIND_IN_SET(id,'452,396,4783,960,51,788,1728,600,4359,944,2985,4063,567,899,404,3607,276,4018,109,1013,322,2166,1741,2308,4326,667,2075,875,2726,2605,1421,2894,1219,1622,4223,3077,1827,3997,3738,4077,166,3828,3484,2580,2283,2578,1134,1809,3703 ')
вот
 

korchasa

LIMB infected
find_in_set дорогой способ. Лучше уж потратить память на application-сервере, чем диск на базе.
 

Gas

может по одной?
korchasa
да ладно, отсортировать в памяти 50 строк не напряжёт mysql.
 

Benderlio

Новичок
так как мне быть?

по большому счету числа
(452,396,4783,960,51,788,1728,600,4359,944,2985,4063,567,899,404,3607,276,4018,
лежат в массиве...
могу данные догрузить в массив и сортировать уже сам массив, но это крайний вариант, если не получится мусклом
 

korchasa

LIMB infected
Автор оригинала: Gas
korchasa
да ладно, отсортировать в памяти 50 строк не напряжёт mysql.
Согласен, неправильно выразился. Это от количества строк и их размера зависит. Главное в память уместиться на filesort ;)
 

Gas

может по одной?
Agent
так исторически сложилось, а разницы нет (ну теоритически field может оказаться незначительно быстрее).
 
Сверху