Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Позиция ID в элементе
 
 автор: pavluxa09   (02.06.2012 в 18:07)   письмо автору
 
 

Здравствуйте. Есть SQL запрос который возвращает список пользователей упорядоченный по какой-то колонке, необходимо узнать позицию строки у которой в определенном столбике определеноое значение . Как это можно сделать без PHP?

  Ответить  
 
 автор: Valick   (02.06.2012 в 19:16)   письмо автору
 
   для: pavluxa09   (02.06.2012 в 18:07)
 

совсем совсем непонятно что вы хотите

  Ответить  
 
 автор: Sfinks   (03.06.2012 в 00:25)   письмо автору
 
   для: pavluxa09   (02.06.2012 в 18:07)
 

А вы уверены, что оно вам нужно?
Дело в том, что в MySQL нет встроенной функции нумерования строк.

Есть способ, но он чрезвычайно медленный!!!
В нем для этого происходит умножение таблицы самой на себя, затем выборка среза по условию, группировка и подсчет строк....
Т.е. если в таблице 1000 пользователей, то будут производиться манипуляции с таблицей размером 1000*1000 = 1 000 000 строк.
Для примера, я сейчас запустил такую выборку на таблице с 2500 пользователей - время выполнения запроса 122 секунды.

  Ответить  
 
 автор: Sfinks   (03.06.2012 в 00:44)   письмо автору
 
   для: pavluxa09   (02.06.2012 в 18:07)
 

Мдааа.... Перетрудился =)

Не нужно тут нумерование строк, слава богу =)

SELECT count(*)num
FROM users
WHERE login <=( SELECT login 
                FROM users 
                WHERE mail='user@mail.ru' )
Возвращает (num) номер строки в таблице users отсортированной по полю login где mail пользователя равен user@mail.ru

Вот если бы вам понадобилось найти позиции ВСЕХ строк пользователей у которых город = 'Москва', то пришлось бы нумеровать.

  Ответить  
 
 автор: pavluxa09   (03.06.2012 в 00:50)   письмо автору
 
   для: Sfinks   (03.06.2012 в 00:44)
 

Супер! Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования