powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавить автоинкремент в пределах строк с одинаковым ключом
4 сообщений из 4, страница 1 из 1
Добавить автоинкремент в пределах строк с одинаковым ключом
    #38441539
Здравствуйте.

Select возвращает строки с ключом. При этом на один ключ приходится разные значения по другим столбцам, можно ли как-то в select'e добавить автоинкрементальное поле, которое для каждого нового ключа начинает сбрасываться и инкрементироваться заново?

Наглядно то, что нужно получить в результате выборки:
ключ | автоинкрементальный столбец
1|1
1|2
1|3
2|1
3|1
...
и т.д.
P.S. различающиеся столбцы в наглядном примере опустил


С уважением
...
Рейтинг: 0 / 0
Добавить автоинкремент в пределах строк с одинаковым ключом
    #38441541
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, от проблемы просто веет оригинальностью...

FAQ: Нумерация строк и другие вопросы про использование переменных
...
Рейтинг: 0 / 0
Добавить автоинкремент в пределах строк с одинаковым ключом
    #38441603
Akina, благодарю.

чего не учитываю?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT  
	pp.virtuemart_product_id
	, m.virtuemart_media_id
	, if(@typex=m.virtuemart_media_id, -- если "type_a" не изменился
		@rownum:=@rownum+1, -- то увеличить счетчик
		@rownum:=1+least(0,@typex:=m.virtuemart_media_id)) AS ordering -- иначе скинуть счетчик на 1 
		-- и занести новое значение в @typex
FROM `ytgb1_virtuemart_medias` m
JOIN ytgb1_virtuemart_products pp 
	ON pp.product_sku = SUBSTRING_INDEX(REPLACE(SUBSTR(file_url, 35), '.jpg', ''), '-',1),
(select @rownum:=1, @typex:=0) v
WHERE 
	NOT EXISTS( SELECT virtuemart_product_id FROM ytgb1_virtuemart_product_medias m1 WHERE m1.virtuemart_media_id = m.virtuemart_media_id )
	AND file_type = 'product'
	AND EXISTS( SELECT virtuemart_product_id FROM ytgb1_virtuemart_products p WHERE p.product_sku = SUBSTRING_INDEX(REPLACE(SUBSTR(file_url, 35), '.jpg', ''), '-',1))
ORDER BY
SUBSTRING_INDEX(REPLACE(SUBSTR(file_url, 35), '.jpg', ''), '-',1) 
...
Рейтинг: 0 / 0
Добавить автоинкремент в пределах строк с одинаковым ключом
    #38441615
разобрался
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавить автоинкремент в пределах строк с одинаковым ключом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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