Скажем есть некий запроc select * from staff where какое-то условие order by какое-то условие В результах этого запроса есть некий элемент с `nomer`='некое число'. Как наиболее ненакладно узнать на каком месте в результатах этого запроса этот элемент. Я это делаю каким-то кривым способом, и кажется можно проще, но из-за пробелов в знаниях не уверен как это правильно делать
Да там по разному может быть в зависимости от ситуации, я вот и хотел узнать есть ли способ вычислить позицию, не опираясь на условия выборки и сортировки. Ну скажем так select * from staff where old=0 order by `auction`, `update_date`,`add_date`
Ну скажем вычисляем значения полей где `nomer`=123 скажем в массив $need[] Далее при общем запросе select * from staff where old=0 order by `auction`, `update_date`,`add_date` вычисляем позицию так select count(*) from staff where `old`=0 and `auction`<=$need['auction'] and `update_date`<=$need['auction'] and `add_date`<=$need['add_date'] и получаем позицию элемента с `nomer`==123 в результатах исходного запроса Но поскольку запросы все бывают разные в зависимости от ситуации, как получить позицию элемента не опираясь на исходные условия выборки и сортировки Я ж не в базе позицию вычисляю, а в результатах некоторого запроса
Будьте добры в двух словах поподробнее, не очень смысла понимаю set 'set @N:=0' это что, в двух словах намекните
Есть объявления в базе, пользователю нужно найти свое объявление в общем списке, который естественно разбит на страницы, дабы во первых он не искал свое объявление среди тысяч других и узнал на какой странице многостраничног вывода его объявление находится, дабы был стиму воспользоваться платной услугой поднятия объявления
а страницы неизменны или его позиция каждый день меняется? а просто узнать конкретную позицию действительно select count(*) .. where $where and orderfield<$cur
mysql_query('set @N:=0'); $sql = "select id, @N:=@N+1 a from ...."; $q = mysql_query($sql); Если я правильно понял, при таком раскладе весь список перебирается и каждой записи прислваивается переменная N, соответствующая его порядковому номеру в результате. А это не слишком тяжело, если скажем записей несколько тысяч, точнее говоря точно нет более чеге либо легковесного
Меняется постоянно, ротация идет, ктото устаревает, добавляются новые, я вобщем через каунт это делать и планирова, но решил выяснить, а не делаю ли я это через одно место
извращаясь - select count(*) from (select id from $ur_sql) tt если совсем сложно отделить отдельный запрос. но это понятно медленнее. сначала я думал тебе надо каждой строчке приписать номер.