ORDER BY определенное кол-во значений

ev09
Дата: 31.01.2013 18:03:21
Пусть есть
1. A
2. B
3. B
4. B
5. B
6. A
7. С
8. С

таблица одна

нужно как-то выбрать,
скажем по 2 значения с A B C, но именно определенное кол-во

Вообще реально соорудить такое? || В каком направлении копать?
tanglir
Дата: 31.01.2013 18:08:39
ev09,

7489069
ev09
Дата: 31.01.2013 18:21:29
похоже, надо дополнительную таблицу делать, производительность никто не отменял :-)
tanglir
Дата: 31.01.2013 18:28:14
ev09,

да уж, отсутствие оконных функций - одна из самых больших пичалек в мускле.
javajdbc
Дата: 31.01.2013 18:40:21
ev09

>> похоже, надо дополнительную таблицу делать,

никакой дополнительной таблицы не надо

>> производительность никто не отменял :-)

вы думаете что будет медлено?
или вы сделали тест?
ev09
Дата: 31.01.2013 19:22:49
javajdbc
вы думаете что будет медлено?
или вы сделали тест?

I think, therefore I am
Там по сути получается 2 запроса первый выбирает все и помечает, второй из этого всего еще раз выбрать…
Просто есть менее геморойные решения, например складывать по крону фотки в папки, при добавлении новой, обновлять. или опять же как-то помечать, при добавлении новой перепомечать

скажем нужно выбирать по 4 записи тип A B C

при добавлении нового элемента
тип мы знаем, для этого типа делаем SET num=num+1 WHERE num<5 (да ну и ладно, что дальше одни с 5 будут)
новому num=1
по сути то же самое, только делаем это на уровне администрирования, а там точно спешить некуда.
соответственно будет что-то типа
WHERE num<5 ORDER BY type

Вроде должно все получиться, завтра попробую
javajdbc
Дата: 31.01.2013 19:37:58
ev09,

материализаное поле "порядковый номер в группе" --
вполне нормальное решение.
Как и всегда-- есть плюсы -- выборка быстрее --
и минусы -- дополнительное поле, надо его поддерживать,
перезаписывать на вставке.

что выбрать -- решать вам.
По мне , так на переменных МЕНЕЕ геморойно, хотя и
в несколько раз медленее -- важно ли это или нет --
зависит от задачи.

Просто для информации -- выборка на переменных (как по ссылке)
на 200К записей проидет за десяток (десятки) милисекунд при
условии что по индексы на поле сортировки поместится в памяти.

По индексу на дополнительно поле будет за милисекунды.
(это прикидка по средне-полоточным ресурсам)