Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Узнать порядковый номер записи запроса


Автор: Vreden 10.5.2012, 18:48
Есть такой запрос:

Код

SELECT COUNT(p.ID) FROM cib_product as p WHERE p.ID IN (SELECT IDProduct FROM `cib_product_location` 
WHERE IDLocationCatalog='$IDCatalog' or (IDLocationSection='$IDCategory' and IDLocationSection!='0') 
or (IDLocationSection='$IDSection' and IDLocationSection!='0')) 
ORDER BY p.Position, p.ID


Есть некий p.ID, мне нужно знать каким по счету он идет в результате данной выборки.

Для чего:
Данным запросом я узнаю общее количество товаров, отображаемых в конкретном каталоге - разделе - секции. (постраничный вывод)
Нужно узнать номер страницы, на которой находится товар с определенным ID и находящийся в определенном каталоге - разделе - секции, т.е удовлетворяющий WHERE, указанный в запросе выше

Автор: Fortop 10.5.2012, 19:31
Цитата(Vreden @  10.5.2012,  18:48 Найти цитируемый пост)
Нужно узнать номер страницы, на которой находится товар с определенным ID и находящийся в определенном каталоге - разделе - секции, т.е удовлетворяющий WHERE, указанный в запросе выше

Вечер...
Я плохо понял смысл этой идеи.

Но вообще http://bit.ly/INbfWv

Автор: Akina 10.5.2012, 19:38
Цитата(Vreden @  10.5.2012,  19:48 Найти цитируемый пост)
мне нужно знать каким по счету он идет в результате данной выборки

http://www.sql.ru/forum/actualthread.aspx?tid=684431

Цитата(Fortop @  10.5.2012,  20:31 Найти цитируемый пост)
Я плохо понял смысл этой идеи.

Но вообще вот 

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

Автор: Vreden 10.5.2012, 20:40
Код

SET @n :=0;
SELECT @n := @n +1 AS rownum, p.ID
FROM cib_product AS p
WHERE p.ID
IN (

SELECT IDProduct
FROM  `cib_product_location` 
WHERE IDLocationCatalog =  '$IDCatalog'
OR (
IDLocationSection =  '$IDCategory'
AND IDLocationSection !=  '0'
)
OR (
IDLocationSection =  '$IDSection'
AND IDLocationSection !=  '0'
)
)
ORDER BY p.Position, p.ID;


Данный запрос возвращает массив пронумерованных записей, я не возьму в толк как мне вернуть не массив, а одно значение, которое будет равно номеру записи при определенном ID, я понимаю, что в данном запросе я нигде не указывают условие, чтобы ID равнялось чему-то, но я и не могу понять как его таким образом составить.

Автор: Fortop 10.5.2012, 20:40
Цитата(Akina @  10.5.2012,  19:38 Найти цитируемый пост)
Лучше не писал бы... даже запрос в гугле составил чёрт те как...

Посмотреть результаты выдачи сил видимо не хватило? smile

user posted image

Автор: Vreden 10.5.2012, 20:43
Fortop, мне кстати не нужно пронумеровывать все записи, мне нужно узнать порядковый номер одной записи конкретного запроса

Автор: Fortop 10.5.2012, 20:45
Цитата(Vreden @  10.5.2012,  20:43 Найти цитируемый пост)
Мне кстати не нужно пронумеровывать все записи, мне нужно узнать порядковый номер одной записи конкретного запроса 

Как ты это планируешь сделать?

Автор: Vreden 10.5.2012, 20:51
Цитата(Fortop @ 10.5.2012,  20:45)
Как ты это планируешь сделать?

Я подумываю над тем, чтобы найти кого-нибудь, кто поможет мне это сделать.

Автор: Fortop 10.5.2012, 21:20
Vreden, как можно узнать номер записи, если у нее его нет?
Мне кажется сначала нужно их пронумеровать smile

А затем уже можно выбрать по ИД, ее номер

Добавлено через 3 минуты и 21 секунду
А вот зачем знать номер страницы каталога, на которой есть этот товар я не сильно понял....

Автор: Akina 10.5.2012, 22:02
Цитата(Vreden @  10.5.2012,  21:40 Найти цитируемый пост)
как мне вернуть не массив, а одно значение, которое будет равно номеру записи при определенном ID, я понимаю, что в данном запросе я нигде не указывают условие, чтобы ID равнялось чему-то, но я и не могу понять как его таким образом составить. 

Вот всё, что сделано - это подзапрос. Из которого внешним запросом выберите одну нужную запись, с требуемымым ID.

Цитата(Fortop @  10.5.2012,  21:40 Найти цитируемый пост)
Посмотреть результаты выдачи сил видимо не хватило? 

Хватило, хватило - потому и высказал. Из первой десятки - НИ ОДНОГО по MySQL. Исключительно MS SQL и Access. 



Автор: Fortop 11.5.2012, 02:22
Цитата(Akina @  10.5.2012,  22:02 Найти цитируемый пост)
Хватило, хватило - потому и высказал. Из первой десятки - НИ ОДНОГО по MySQL. Исключительно MS SQL и Access. 

Ну-да, ну-да....
user posted image

Автор: Akina 11.5.2012, 07:41
Fortop
1) порядок выдачи результатов меняется, когда я смотрел, ссылки на ФАК - не было;
2) даже сейчас - на первой странице слово MySQL отсутствует.
Если уж показываешь, как составлять запрос - составляй его так, чтобы первая же ссылка (или хотя бы одна из первой тройки) без перехода, только по цитате, зримо давала уверенность, что решение найдено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)