Mysql Узнать номер записи по запросу

WMix

герр M:)ller
Партнер клуба
fixxxer
я очень любил теорию баз данных, но назвать себя сильным не могу... тогда был юнцом, все казалось классным, но многое пропустил...
я помню что значит quicksort - способ сортировки с потерей порядка... возможно ты про это... но строчка записанна в файле и имеет порядок!... или я действительно не догоняю?
 

fixxxer

К.О.
Партнер клуба
При работе с СУБД не имеет никакого значения, в каком порядке что-то хранится на диске. Вне рамок того, что указано в order by, СУБД может вообще каждый раз делать shuffle() просто потому, что так захотелось.
На практике - наример, СУБД может внезапно решить, что надо провести дефрагментацию (заполнить дырки, образовавшиеся после delete), этот процесс изменит физическое расположение - а ты увидишь разный порядок, дважды выполнив один и тот же select.
 

Baton

Новичок
PHP:
mysql_query("SET @x:=0;");
mysql_query("SELECT `num` FROM ( SELECT *, @x:=@x+1 num FROM `table` WHERE `type`=0 ORDER BY `id` ASC ) `num` WHERE `id`=5");
Задачу решает, но использовать в таком виде не советую :)
 

С.

Продвинутый новичок
Ок, но это не совсем то. Что делать, если id, к примеру, не число, а текстовая строка?
А какая разница? ORDER BY отсортировать их может, WHERE сравнить уже нет? Лексикографическое сравнение еще никто не отменял. STRCMP() тебе в руки.
 

mishanon

Новичок
Никто так и не предложил ничего вразумительного?
так как стандартная задач. допустим есть таблица с сообщениями в разном порядке. поля msd_id и body
Соотвественно. делаем запрос получат 60 записей. нужно узнать номер записи с msd_id = 10 для того чтоб отобразить это сообщение
 

artoodetoo

великий и ужасный
Вопрос относится к представлению данных, а не к MySQL. Если автору нужно выводить номера рядом с данными, пусть выводит.
Я полагаю вывод идет на веб страницу? Тогда HTML тег <ol> будет в самый раз.
Если хочется иметь номера в переменных PHP, то никто не мешает в PHP завести счетчик и увеличивать его для каждой строки. Опять же запрос непричем.
Ну нет гладких и шелковистых способов получить номер строки в MySQL, только трюки.
 

fixxxer

К.О.
Партнер клуба
В таблице нет, блин, никакого порядка, это по определению неупорядоченное множество записей. Номеров тоже никаких нет.

В конкретной выборке есть order by, есть limit и offset.
 

Фанат

oncle terrible
Команда форума
Никто так и не предложил ничего вразумительного?
так как стандартная задач. допустим есть таблица с сообщениями в разном порядке. поля msd_id и body
Соотвественно. делаем запрос получат 60 записей. нужно узнать номер записи с msd_id = 10 для того чтоб отобразить это сообщение
предложить-то предложили.
Но аффтар слишком был занят собой, чтобы читать что ему пишут.
Ты, похоже, тоже невнимательно читал.
 
Сверху