Проблема в MySQL при заказе более чем на один столбец, используя ORDER BY FIELD

0

У меня есть запрос MySQL, в котором я сортирую по полю следующим образом:

"... WHERE (patterns.id IN($idsJoin)) $where
                       ORDER BY FIELD($idsJoin2) LIMIT 0 , $numLines";

где $idsJoin2 выглядит примерно так:

 my $idsJoin = join(',',@ids);
 my $idsJoin2="patterns.id, ".$idsJoin;

и "@ids это массив с номерами, которые я хочу заказать.

Дело в том, что после упорядочивания по $idsJoin2 я хочу заказать другие столбцы, например:

"WHERE (patterns.id IN($idsJoin)) $where
                       ORDER BY FIELD($idsJoin2), products.product, versions.version, builds.build LIMIT 0 , $numLines";

Если я помещаю эти столбцы перед ORDER BY FIELD, они сортируются ими с любой проблемой, но если они после ORDER BY FIELD, что я хочу, он просто игнорирует их и просто сортирует по инструкции ORDER BY FIELD.

Я не понимаю, почему это происходит. Есть идеи? Спасибо.

  • 0
    Привет, кто-нибудь может мне помочь с этим? Если вопрос недостаточно ясен, просто скажите мне, и я постараюсь объяснить его лучше. Благодарю.
Теги:

2 ответа

0

Извините, что я забыл сказать, что я решил проблему. В любом случае спасибо за ответ.

Проблема заключается в том, что она получала только одну строку в результате, поэтому было невозможно заказать другие критерии. Окончательное решение проблемы:

http://forums.devshed.com/mysql-help-4/problem-when-using-a-temporary-table-631676.html

0

Почему вы добавляете идентификаторы в $idsJoin2? Разве это не должно быть 'patterns.id', если вы хотите заказать этот столбец?

Ещё вопросы

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