Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > Выборка номера записи по условию |
Автор: ruX 4.6.2009, 11:34 | ||||||
Добрый день Мне нужно найти номер записи по данному условию в выборке. Такой запрос
даёт список пару photoid, nn Но мне нужно найти позицию в выборке(nn) для определённого photoid Хотел воспользоваться HAVING photo.photoid=123456,
но тогда почему-то nn всегда 1 Не понимаю почему. HAVING ведь выбирает уже из выбранных данных и не должен влиять на nn (по http://dev.mysql.com/doc/refman/5.1/en/select.html )
Как выкрутиться? Получать весь список id-ов глупо, он может быть очень большим |
Автор: skyboy 9.6.2009, 11:10 | ||||
полез в http://dev.mysql.com/doc/refman/5.1/en/user-variables.html. почитал.
и даже больше:
Круто, правда? Похоже, не получится у тебя с переменными в запросе решить задачу. Чесно говоря, я не понял, двух вещей: - почему не использовать LIMIT 123456,1? - где твой порядок следования, заданный через ORDER BY? в отсутствие ORDER BY СУБД "имеет право" выдавать записи каждый раз в другом порядке. |
Автор: skyboy 11.6.2009, 13:57 | ||||
да, неверно понял :( Добавлено через 2 минуты и 41 секунду в таком случае
и будет позицией. |
Автор: ruX 11.6.2009, 16:03 |
skyboy, спасибо! то что надо, интересный ход. ![]() |
Автор: skyboy 12.6.2009, 14:46 |
дык, "count(*) + 1" или уже на стороне клиента увеличить на один. вот только в общем виде для "найти позицию в отсортированном списке" решения так в голову и не приходит. |