|
|
|
| Добрый день.
Помогите решить задачку плиз.
Есть список ID, например $id_list = '12,32,18,9';
Запрос: SELECT * from table WHERE id IN ($id_list)
в ответ получу массив, в том же порядке как в базе, а хотелось-бы в том же порядке как и в $id_list
|
Или может можно как-то сами результаты отсортировать?
Заранее спасибо. | |
|
|
|
|
|
|
|
|
для: Fractured#
(16.12.2009 в 21:30)
| | Ответ не верный, либо я не понял как этой функцией пользоватся.
Но все равно спасибо, там в глубине нашел нужное.
SELECT * from table WHERE id IN ($id_list) ORDER BY FIELD(id, $id_list)
|
| |
|
|
|
|
|
|
|
для: jbs
(16.12.2009 в 21:51)
| | Сколько параметров у функции FIELD? | |
|
|
|
|
|
|
|
для: Trianon
(16.12.2009 в 23:23)
| | integer FIELD( str string, str1 string, str2 string, str3 string,...)
вощето странно, не знаю как, но работает как надо.
А этот вариант выглядит более привлекательно, но не работает.
SELECT * from table WHERE FIND_IN_SET(id, $id_list)
выдает ошибку, что-то про параметры
а если $id_list заключить в кавычки, то выборка произойдет а сортировка нет. | |
|
|
|
|
|
|
|
для: jbs
(17.12.2009 в 12:47)
| | >SELECT * from table WHERE FIND_IN_SET(id, $id_list)
>а если $id_list заключить в кавычки, то выборка произойдет а сортировка нет.
А где здесь предписание отсортировать результат? | |
|
|
|
|
|
|
|
для: Trianon
(17.12.2009 в 12:53)
| | понятия не имею. знал-бы, не спрашивал.
P.S.
Не тратьте мое время! дайте ответ если он есть, зачем пудрить мозги и посылать в глупый поиск который не умеет склонять | |
|
|
|
|
|
|
|
для: jbs
(17.12.2009 в 13:00)
| | сортировка задается конструкцией ORDER BY
В том примере, на который Вы жалуетесь, её нет.
И потише, пожалуйста. Ваше время я не трачу. Только своё. | |
|
|
|
|
|
|
|
для: Trianon
(17.12.2009 в 13:03)
| | пардон, я переоценил возможности функ. FIELD_IN_SET
и так, теперь они работают одинаково
WHERE id IN ($id_list) ORDER BY FIELD(id, $id_list) -> FIELD(id, 23,43,11,...)
WHERE id IN ($id_list) ORDER BY FIND_IN_SET(id, '$id_list') -> FIND_IN_SET(id, '21,3,43...')
навязывается вопрос, а как правильно? ))) | |
|
|
|
|
|
|
|
для: jbs
(17.12.2009 в 13:18)
| | FIELD_IN_SET
Вообще-то правильно задавать такие отношения отдельной таблицей.
Но из этих двух - FIELD_IN_SET | |
|
|
|