Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / ORDER BY 1 2 3 / 9 сообщений из 9, страница 1 из 1
21.03.2013, 12:36
    #38192934
Krava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
Здравствуйте, подскажите как можно поступить в моем случае.
В базе неупорядоченно расположены строки где есть три вида категории (1, 2, 3).
Как можно сделать запрос чтобы строки шли к таком порядке
категория 1,
категория 2,
категория 3,
категория 1,
категория 2,
категория 3, ...
...
Рейтинг: 0 / 0
21.03.2013, 13:24
    #38193079
ORDER BY 1 2 3
Есть какое-нибудь поле в таблице, которое позволяет отличать одну "Категорию 1" от другой "Категории 1" ?
...
Рейтинг: 0 / 0
21.03.2013, 13:32
    #38193105
ORDER BY 1 2 3
если такое поле есть, то задача решается элементарно. Если поля нет, то тоже решается, но менее элементарно.

Общая идея решения показана в демонстрационном примере
...
Рейтинг: 0 / 0
21.03.2013, 13:42
    #38193126
Krava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
Спасибо большое это вроде то что нужно, Вы мне очень помогли. Поле как раз есть дополнительное по которому можно отличить.
Буду пробовать подгонять к своему запросу.
...
Рейтинг: 0 / 0
22.03.2013, 13:29
    #38194801
Krava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
А если в базе очень много строк, что тогда будет лучше использовать ?
...
Рейтинг: 0 / 0
04.04.2013, 16:17
    #38213186
economistalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
Можно склеить поле с категорией с другим, "отличающим", полем - Cat||Type :

Категория 1 Яблоки
Категория 1 Груши
Категория 2 Груши
Категория 2 Сливогрушебуз
...
Рейтинг: 0 / 0
04.04.2013, 16:19
    #38213192
economistalex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
И если строк миллионы - можно написать триггер, который будет записывать в еще одно индексируемое поле эту "склейку". SELECT по этому полю будет просто летать...
...
Рейтинг: 0 / 0
06.04.2013, 13:34
    #38215383
Krava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
economistalex
А можно пожалуйста подробней, для меня это очень важно.
Для примера вот такая таблица http://sqlfiddle.com/#!7/5256a/2
Если учесть что записей может быть 100 000.
Как можно сделать оптимальный запрос в таком виде:
авторКатегория 1
Категория 2
Категория 3
Категория 1
Категория 2
Категория 3
Категория 1
....
LIMIT 20;
...
Рейтинг: 0 / 0
06.04.2013, 15:10
    #38215419
Krava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORDER BY 1 2 3
Вот как я это сделал в MySQL (может конечно есть и варианты получше...)

Код: sql
1.
2.
3.
4.
5.
SELECT * FROM (
(SELECT @i:=@i+1 AS var, id,name,sait FROM rabota_vacancy, (select @i:=0) AS z WHERE sait='категория1' LIMIT 10)
UNION
(SELECT @i:=@i+1 AS var, id,name,sait FROM rabota_vacancy, (select @i:=10) AS z WHERE sait='категория2' LIMIT 10))
 as krava ORDER BY FIND_IN_SET(var, '1,11,2,12,3,13,4,14,5,15,6,16,7,17,8,18,9,19,10,20');
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / ORDER BY 1 2 3 / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]