Вопрос к знатокам! есть такой запрос: SELECT * FROM table WHERE id IN (7,2,123,4); нужно сортировку организовать как в IN, тоесть чтоб записи были с id 7,2,123,4 таблица приведена для примера
Если это id, то явно не user их вводит. И пусть даже каждую секунду они обновляются - порядок в in не с потолка падает. Оттуда и бери.
[sql] SELECT t.* FROM test t, (SELECT 1 order_by,7 id union select 2,2 union select 3,123 union select 4,4) s where t.id=s.id order by s.order_by [/sql]
Есть сомнения по времени его выполнения В таком виде сколько времения по сравнению с исходным будет выполняться?
Silicium [sql]SELECT 1 order_by,7 id union select 2,2 union select 3,123 union select 4,4[/sql] дает тебе таблицу с парами порядковый номер, идентификатор этот селект ты должен сформировать сам (как-то же ты собирался получать ряд WHERE id IN (7,2,123,4); ), порядковый номер - это просто 1,2,3,4... и т.д. нужен для сортировки дальше идет простое связывание таблиц по id
Точно! записей больше 100000 решил проблему простым сшиванием массивов построил массив сортировки отсортировал по order => id отсортировал по id, а потом подшивал к ему данные с основной таблицы/ которые выбрал отсортированными по id, и в конце концов отсортировал массив по ключу, тоесть по order Решение конечно не MySQL, а программное, кто придумает MySQL - пишите очень хочется знать
есть две большие таблицы, по минимум 100000 записей, одна хранит информацию о клиенте, друга количество авто этого клиента от 1 до 100, нужно сделать сортировку клиентов по количеству авто, всякие LEFT JOIN не катят, базу ложит невероятно... проверенно
Это не к тебе вопрос был. Просто в MySQL'e подзапросы недоделаны. Даже если подзапрос выдает константный результат, оптимизатор далеко не всегда так считает. И выполняет подзапрос столько раз сколько ему взбредет. Эту полу багу полу недоделку исправить обещают только в 6.0. Иными словами ...... А тут подзапрос с вложенными юнионами. sleep на 1 сек там я воткнул чтоб посмотреть сколько раз вызываться будет подзапрос. Я на днях на эти грабли сам попал, слава богу помогли http://xpoint.ru/forums/computers/dbms/ ... 2661.xhtml
не помогает слишком много записей и к концу месяца ожидается до 1000000 я понимаю, что выбор базы не правильный, но уже поздно нужно крутиться стем что есть
100 000 записей это очень немного. Выполни EXPLAIN твой запрос бла-бла-бла с джойнами и пульни в конфу