Как ограничить кол-во записей В ГРУППЕ ?

Denissimo

Новичок
Как ограничить кол-во записей В ГРУППЕ ?

Есть таблица:

| Изделие | Группа |
-------------------------
| Роза | Цветы |
| Лилия | Цветы |
| Гвоздика| Цветы |
| Орхидея | Цветы |
| Фикус |Горшки|
| Герань |Горшки|
| Кактус |Горшки|
| Кротон |Горшки|

Нужно загрузить из каждой группы по 3 записи
Можно ли это сделать одним запросом в MySQL?
 

PILOT

Новичок
можно что-нибудь типа group_concat'а + substring_index, но это несколько извращённо.

select t1.`Группа`,substring_index(t1.`Изделия_через_запятую`,','3) from (select`Группа`,group_concat(`Изделие`) as `Изделия_через_запятую` from `Таблица_с_изделиями` group by 1 order by null) as t1;

Лучше конечно несколькими запросами. Если ключи будут в порядке при достаточно большой таблице будет намного быстрее.
 

Alexandre

PHPПенсионер
можно установить флаг preview для каждых первых трех записей,
тогда еще быстрее будет,
но натыкаемся на геморой при удалении записей - будет чуточку медленнее.
 

weregod

unserializer
> но натыкаемся на геморой при удалении записей - будет чуточку медленнее.

не иначе в таблице мильярды записей ;)
 
Сверху