Вопросец небольшой по mysql:
Имеется таблица mysql с колонками:
1. id записи
2. сама запись
3. рейтинг записи (числовое значение)
Какой запрос надо сделать чтоб узнать на каком по счету месте стоит нужная мне запись (id), если отсортировать по рейтингу?
Место в талице mysql
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
21 сентября 2012 в 15:31
я бы сделал так:
Предположим нас интересует запись с id = 8
сначала нужно узнать рейтинг вашей записи:
$id=8;
$raiting = $inDB->get_field('cms_content', "id=$id", 'raiting');
зная рейтинг, делаем такой запрос:
$sql = "SELECT * FROM cms_content WHERE raiting >= '$raiting' ORDER BY raiting DESC";
$result = $inDB->query($sql);
Данный запрос возьмёт из базы (для примера исп таблица cms_content) все строки с рейтингом больше вашей и включая вашу. Причём ваша строка будет последней, так как её рейтинг будет самым маленьким в этой выборке.
Следовательно, количество записей в этой выборке и будет тем числом, которое вы ищите.
Узнать его можно так:
$nomer = $inDB->num_rows($result)
Предположим нас интересует запись с id = 8
сначала нужно узнать рейтинг вашей записи:
$id=8;
$raiting = $inDB->get_field('cms_content', "id=$id", 'raiting');
зная рейтинг, делаем такой запрос:
$sql = "SELECT * FROM cms_content WHERE raiting >= '$raiting' ORDER BY raiting DESC";
$result = $inDB->query($sql);
Данный запрос возьмёт из базы (для примера исп таблица cms_content) все строки с рейтингом больше вашей и включая вашу. Причём ваша строка будет последней, так как её рейтинг будет самым маленьким в этой выборке.
Следовательно, количество записей в этой выборке и будет тем числом, которое вы ищите.
Узнать его можно так:
$nomer = $inDB->num_rows($result)
#3
21 сентября 2012 в 16:35
Как говорится все гениальное просто… а я думал-думал… вообщем плюсик вам за подсказку.