[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нумерация строк
Shurick
Как пронумеровать строки в порядке заданной релевантности?

есть такой способ

SET @var := 0;
SELECT @var := @var+1 AS num, field_name FROM `table_name`


но если подключить еще одну таблицу и добавить ORDER BY последовательность нумерации перемешивается, а необходимо пронумеровать по порядку.


SET @var := 0;
SELECT p.id,p.name,@var:=@var+1 AS num FROM products p, products_categories c WHERE 1 AND p.visible='1' AND (c.product_id=p.id AND c.category_id='18') order by p.name




Спустя 7 минут, 5 секунд (12.09.2012 - 09:16) Игорь_Vasinsky написал(а):
нумеруй в php

Спустя 8 минут, 19 секунд (12.09.2012 - 09:25) Shurick написал(а):
Да, это конечно выход, но это увеличит время работы запроса к функции.

Спустя 6 минут, 19 секунд (12.09.2012 - 09:31) Shurick написал(а):
Изменил запрос


SET @var := 0;
SELECT p.id,p.name,@var:=@var+1 AS num FROM products p WHERE 1 AND p.visible='1' AND p.id in (SELECT product_id FROM products_categories WHERE category_id='18') order by p.name


нумерация последовательная, но увеличилось время запроса

Спустя 11 минут, 13 секунд (12.09.2012 - 09:42) Placido написал(а):
Нужно просто @var:=@var+1 в селекте поставить первым. Кстати, можно и одним запросом (без SET @var := 0;)
SELECT @var:=@var+1 AS num, p.id, p.name 
FROM products p, products_categories c, (select @var := 0) z
WHERE p.visible='1' AND c.product_id=p.id AND c.category_id='18' order by p.name

Спустя 5 минут, 9 секунд (12.09.2012 - 09:47) Shurick написал(а):
Цитата (Placido @ 12.09.2012 - 06:42)
Нужно просто @var:=@var+1 в селекте поставить первым....

Это не помогло...

Спустя 4 часа, 2 минуты, 46 секунд (12.09.2012 - 13:50) SlavaFr написал(а):
select * , if(@var is not null,@var:=@var+1,@var:=0) as counter from ..............
тололько если речь идет о чистом sql решении.
в противном случае считаю, что лучше нумировать в php.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.