Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Узнать порядковый номер строки в запросе
 
 автор: yuk   (15.11.2007 в 16:28)   письмо автору
 
 

Известен id одной записи.
Есть запрос на выборку записей, причем запись с известным нам id заведомо туда входит.
Требуется определить, какой у этой записи порядковый номер в запросе.
Делаю это через цикл, перебирая результат запроса, но может есть какой-нибудь стандартный способ определить порядковый номер записи по ее id?

   
 
 автор: Temnovit   (15.11.2007 в 16:52)   письмо автору
 
   для: yuk   (15.11.2007 в 16:28)
 

Порядковый номер в результирующем наборе? Или от начала таблицы или еще как-то?

   
 
 автор: cheops   (15.11.2007 в 16:57)   письмо автору
 
   для: yuk   (15.11.2007 в 16:28)
 

Другой способ вряд ли будет изящным - лучше использовать цикл - вам ведь всё-равно данные из результирующей таблицы выводить нужно?

   
 
 автор: yuk   (15.11.2007 в 17:05)   письмо автору
 
   для: cheops   (15.11.2007 в 16:57)
 

В итоге мне нужны три записи - запись с известным id, и две соседние записи в рзультирующем наборе (предыдущая и следующая).
Тогда оставлю цикл. Спасибо.

   
 
 автор: ezus   (16.11.2007 в 12:29)   письмо автору
 
   для: yuk   (15.11.2007 в 17:05)
 

А в запросе есть ORDER BY?
Если нет, тогда не понятно что-такое соседи по запросу.
Если есть и таблица маленькая или есть индекс по ключам, тогда возможен следующий селект

SELECT * FROM tbl
where key = key_value
or key in (SELECT max(key ) FROM tbl where key = key_value)
or key in (SELECT min(key ) FROM tbl where key = key_value);

   
 
 автор: oradev   (16.11.2007 в 14:51)   письмо автору
 
   для: yuk   (15.11.2007 в 16:28)
 

Зачем цикл ? Делаете обычный запрос с самосоединением.

   
 
 автор: yuk   (19.11.2007 в 01:58)   письмо автору
 
   для: oradev   (16.11.2007 в 14:51)
 

ORDER BY в запросе есть (по дате), в результате чего некоторые id перемешиваются. Так что напрямую этот вариант не подходит. Но мысль интересна, идея понятна. Попытаюсь привязаться как-нибудь к дате.

А запрос с самосоединением это как?

   
 
 автор: cheops   (19.11.2007 в 11:49)   письмо автору
 
   для: yuk   (19.11.2007 в 01:58)
 

Самообъединение - это многотабличный запрос к одной таблице, когда в качестве разных таблиц выступают копии одной таблицы
SELECT ... FROM tbl AS first, tbl AS second ...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования