powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Умные люди подскажите пожалуйста!
6 сообщений из 6, страница 1 из 1
Умные люди подскажите пожалуйста!
    #38977655
Ofigenski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача стоит такая выбрать по N-ое кол-во товара в каждой из категорий.
Например в БД всего 5 категорий и у каждой категории более 1000 позиций товара, а нам нужно вывести всего по ТРИ позиции каждой категории,
получается в итоге в выборке будет всего 15 строк — 5 категорий в каждой по ТРИ позиции.
При помощи гугла соорудил запрос, но работает он только частично....

Вопрос по принтскрину:
в выборке первые ТРИ записи как и ожидалось, а далее по ОДНОЙ ??? Подскажите плиз!
...
Рейтинг: 0 / 0
Умные люди подскажите пожалуйста!
    #38977675
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION и LIMIT не?
...
Рейтинг: 0 / 0
Умные люди подскажите пожалуйста!
    #38977682
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OfigenskiЗадача стоит такая выбрать по N-ое кол-во товара в каждой из категорий .***!
7489069 , ***!
...
Рейтинг: 0 / 0
Умные люди подскажите пожалуйста!
    #38977685
Ofigenski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnoguUNION и LIMIT не?

В этом случае 1000 категорий = 1000 UNIONов , а такое у меня рука не поднимется сотворить.
...
Рейтинг: 0 / 0
Умные люди подскажите пожалуйста!
    #38977690
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ofigenski,

ну в описании стоит 5 категорий. А тут уже 1000... а так union быстрее отработает чем костыли с переменными
...
Рейтинг: 0 / 0
Умные люди подскажите пожалуйста!
    #38977736
Ofigenski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirOfigenskiЗадача стоит такая выбрать по N-ое кол-во товара в каждой из категорий .***!
7489069 , ***!

1000 благодарностей тебе о добрейший!!! Спасибо помогло!
Вот что получилось конкретно в моей ситуации:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT * FROM 
	(
		SELECT
			`id_goods_category` AS categoryId ,
			`id_goods` 			AS goodsId ,
			`goods_name_title` ,
			`goods_alias` ,
			`goods_images` ,
			if(
				@asCategoryId=g.id_goods_category, 
				@asDoodsNum:=@asDoodsNum+1, 
				@asDoodsNum:=1+least(0,@asCategoryId:=g.id_goods_category)
			) asCounter 
		FROM
			goods g , ( SELECT @asDoodsNum:=1, @asCategoryId:=0 ) asDoodsNumDefault
		ORDER BY
			id_goods_category, id_goods ASC
	) asResult
WHERE
	asCounter <= 3
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Умные люди подскажите пожалуйста!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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