Есть такая таблица: Код (Text): CREATE TABLE `nums_tb` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `nn` BIGINT(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM; INSERT INTO `nums_tb` (`nn`) VALUES (3),(5),(7),(3),(12),(7),(6),(12),(5),(7),(1),(3); есть запрос: Код (Text): SELECT * FROM `nums_tb` WHERE `nn` > 2 ORDER BY `nn` DESC LIMIT 0,3; http://sqlfiddle.com/#!9/b7f41/1 в результате оно выдает: мне надо что бы сначала шел id 8 потом 5 потом 3. т.е. что бы выборка (или сортировка) происходила по двум вещам сначала я выбираю самые большие значения в nn (и по ним сортировало), а потом из этого еще происходила сортировка по id, но при этом самые большие значения из nn все равно были первыми, а там где они совпадают (например как с цифрой 12) впереди шли те у кого id больше. Ну а потом уже выполнялся LIMIT. PS реальная таблица ищет через FULLTEXT, там возвращается значение релевантности, там вот надо сортировать сначала по релевантности, потом по id, что бы сначала шли самые релевантные и в тоже время самые последние записи.
не проще ли в пхп krsort сделать? если ты сделаешь Код (Text): SELECT * FROM `nums_tb` WHERE `nn` > 2 ORDER BY `nn` DESC, `id` DESC LIMIT 0,3; то прост будет 8, 5, 10
ну так вроде в том и бида, я же делаю выборку через LIMIT и к тому что я получу применять еще какие то сортировки бессмысленно, мне надо абстрактно говоря до LIMIT пересортировать.
почему бессмысленно. Ты получил порцию данных, а что ты с ними делаешь и в какой последовательности - уже твоё дело. Тут ты царь и господин.
смотри ка запахало, я пробовал у меня все время ошибка была, а Код (Text): ORDER BY `nn` DESC, `id` DESC происходит ДО LIMIT? или после него?
до конечно. короче всё будет работать как надо, если тебе не принципиально, чтобы сначала были твои айдишники.