Вы можете вернуть позицию строки по сравнению с предыдущим поиском. Например, если я сделал простой запрос: select * from table where name='aa'
PHP & MYSQL - ПОЗИЦИЯ ROW
было бы вернуть
+--+----+---+
|id|name|cid|
+--+----+---+
| 1| aa| 2|
| 5| aa| 2|
| 8| aa| 2|
| 9| aa| 2|
|10| aa| 2|
+--+----+---+
Если я изменил этот запрос: select * from table where name='aa' and id='5'
было бы вернуть
+--+----+---+
|id|name|cid|
+--+----+---+
| 5| aa| 2|
+--+----+---+
в настоящее время в соответствии с первый поиск для where name='aa'
есть 5 строк с and id='5'
, являющийся второй строкой.
Итак, есть ли способ получить положение строки по сравнению с исходным набором? Я хотел бы иметь возможность печатать «Результат 2 из 5». Я могу получить номер 5
, посчитав итоговые строки. Мне просто нужно получить позицию and id='5'
. Я знаю, что это вторая строка исходного набора, но я не могу найти способ вернуть эту информацию. Простите меня, если я не объясню это правильно, поскольку я не совсем знаю, как задать этот вопрос.
Понятие позиции в значительной степени бессмысленны в SQL, которая построена вокруг теории множеств. Зачем вам это делать? – GordonM
Помните - в SQL нет «собственного заказа». Там есть «порядок по какой-то колонке». И вам нужно решить, какой столбец использовать –
Как правило, при отображении результатов из mysql, когда я показываю наборы или разбивая на страницы данные, я использую лимит и могу очень легко получить позицию строки. С приложением, над которым я сейчас работаю, мне просто нужно получить текущий, следующий и предыдущий результат, чтобы в запросе не было «предела», и ничего не было в позиции. – Mickey