Отправляет email-рассылки с помощью сервиса Sendsay

NOMERSTROKI()

Йох-ха-нга,

Помогите, пожалуйста. Решение должно быть простым и общеизвестным,
но я о нем почему то не слышал и найти его в документации не смог.

Нужно, всего лишь, получить номер строки в запросе MySQL SELECT. Т.
е. напимер "SELECT NOMERSTROKI() as nomer_stroki FROM table". Мне
нужна функция NOMERSTROKI.

Кстати, для чего это нужно. Чтобы получать только каждую 10 строку.
Чтобы выводить данные о ней в навигационной панели по б.д.

Ответить   Mon, 20 Sep 2004 03:04:13 +0400 (#231001)

 

Ответы:

Здравствуйте, Novikov.

Насколько я понял, всё это можно решить при помощи конструкции
LIMIT 9, 1
Покажет 10-ю запись
LIMIT 19, 1
покажет 20-ю запись.
Количество записей узнаешь через COUNT()

Ответить   Andrey Yakushev Mon, 20 Sep 2004 10:50:04 +0400 (#231107)

 

Йох-ха-нга,

Я об этом задумывался, но так идею и не доработал. Во-первых, чтобы
узнать количество записей через COUNT(), нужно, вроде бы, сделать
отдельный запрос с параметром GROUP BY, но дело не в этом.

Подскажите, тогда сразу как указать в запросе сразу несколько
параметров LIMIT (ведь мне нужен не просто десятый или двадцатый, а
каждый десятый). Т. е. выглядеть все должно примерно так "SELECT *
FROM table LIMIT 9,1 OR 19,1 OR 29,1". Как это написать
по-правильному?

P.S. Т. е. стандартной функции для определения номера строки от
начала поиска все-таки нет? Странно, я думал это должно быть сделано
в первую очередь.

Ответить   Mon, 20 Sep 2004 22:16:32 +0400 (#231559)

 

Здравствуйте, Novikov.

GROUP BY не нужен. Запрос выглядит так:
SELECT COUNT(id) FROM table

Нет, лимит такого не позволяет.

Ну, я не знаю... Может всё-таки можно решить задачу по-другому? Я бы,
если бы стояла именно такая задача начал бы думать в таком
направлении: Поставил бы каждой записи нужный номер и проверял бы его,
деля на 10. Только, не знаю, будут ли у Вас удаляться записи. Если
будут, то этот способ не подойдёт.

Посмотрите здесь http://dev.mysql.com/doc/mysql/ru/index.html
Может что-нибудь найдёте. Если найдёте, свистните в рассылку,
тоже интересно узнать, как это можно решить.

Ответить   Andrey Yakushev Tue, 21 Sep 2004 09:29:36 +0400 (#231696)

 

ПО-МОЕМУ, ПИСЬМО ПРИШЛО НЕ ПО АДРЕСУ...
Здравствуйте, Andrey!

Tuesday, September 21, 2004, 8:29:36 AM, you wrote:


С уважением,
Aннa mailto:kan***@t*****.by





библиотекa сайтостроительства http://www.i2r.ru/static/244/

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: inet.webbuild.webbuilding
Написать в лист: mailto:inet.webbuild.webbuilding-list@subscribe.ru
Отписать: mailto:inet.webbuild.webbuilding--unsub@subscribe.ru?subject=inet.webbuild.webbuilding

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Aннa Tue, 21 Sep 2004 10:38:58 +0300 (#231798)

 

Йох-ха-нга,

Записи удаляться будут. Еще как =). К тому же в запросах номера все
равно смешались бы, ведь мне нужно универсальное средство,
работаюшее при разных параметрах WHERE и ORDER BY.

Задачу можно было бы осуществить, если задать в запросе переменную,
к которой прибавлять по 1 каждый вызов, но боюсь это в SQL
невозможно.

К сожалению, я там уже был, да и сроки поджимают. Придется
использовать первобытный способ - выбор нужных строк с помощью PHP.
Обидно, досадно, да ладно. =)

Наверное боги сети шутили, когда говорили, что дорабатывать SQL
запрос через PHP - это ламерство.

Ответить   Wed, 22 Sep 2004 01:22:48 +0400 (#232244)