|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Выбор данных из mysql с приоритетом ? |
|
Выбор данных из mysql с приоритетом ?
|
Пользователь Сообщения: 54 |
Профиль | Отправить PM | Цитировать Вопрос:
Есть таблица в mysql, с которой выбирается строка следующим образом: SELECT * FROM table WHERE X ORDER BY RAND() LIMIT 1 в таком случае случайным образом выбирается строка из таблицы. А можно ли как-нибудь сделать, чтоб у некоторых строк был приоритет выборки выше, т.е. они чаще выбирались? |
|
Отправлено: 13:12, 06-10-2005 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать m2001
SELECT *, pr=pr*RAND() FROM table WHERE X ORDER BY pr LIMIT 1 |
------- Отправлено: 15:14, 06-10-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Vlad Drakula
Если pr - это ячейка таблицы со значением приоритета, то при такой схеме у меня оно равно нулю. Такой запрос не совсем подходит. Мне надо реализовать следуещее: Предположим, в таблице есть три строки. У каждой задан приоритет, у первой -5, у второй - 3, у третей - 2. Из php-скрипта мы посылаем запрос в базу. И надо, чтоб при 10 последовательных запусков скрипта информация из первой строки выбиралась 5 раз, из второй 3 раза и из третьей 2 раза. |
Отправлено: 18:09, 06-10-2005 | #3 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать m2001
тогда надо после выбора update-ить таблицу (или сопряженную таблицу), где крутить счетчики. Ну и выборку осуществлять с учетом счетчиков. К сожалению неверхняя ветка mysql не знает транзакций (да и в верхней они вроде как не до конца нормально сделаны), а так в транзакциях и хранимых процедурах, или в триггерах (которых и в верхней ветке, вроде нет?) таким фокусам самое место. |
Отправлено: 19:05, 06-10-2005 | #4 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать эх... mysql не оправдало возложенных на неё прогнозов... и ORDER BY RAND() работает криво.
Может кто подскажет как оптимальнее сделать таблицу с баннерами и как организовать случайный выбор баннера с приоритетом ? |
|
Отправлено: 10:50, 07-10-2005 | #5 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать m2001
я же вроде приводил тебе пример выборки? |
------- Отправлено: 11:44, 07-10-2005 | #6 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Vlad Drakula
я написал что RAND() криво работает... придется самому писать эти счетчики. |
Отправлено: 13:37, 10-10-2005 | #7 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать m2001
в принцепе это не сложно, но нужно не плохо продумать все чтобы достичь нужного перфоманса! |
------- Отправлено: 13:50, 10-10-2005 | #8 |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать m2001
Цитата:
А как выпадают циферки на кубике, тоже криво? Я думаю надо сделать еще одну табличку. В которую заносить кол-во показов. 5 показов - обнуление, 3 - обн.. |
|
------- Отправлено: 20:18, 10-10-2005 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MySQL - Апгрейд MySQL 4->5 и проблемы переноса данных | d0ublezer0 | Программирование и базы данных | 1 | 20-03-2009 17:15 | |
MySQL - [решено] сохранение данных в базе данных Mysql | TigerZaka | Программирование и базы данных | 4 | 24-08-2008 15:48 | |
2 вопроса по выводу данных из Mysql | sadoz1 | Вебмастеру | 11 | 29-06-2006 08:54 | |
Проблемы с перекодировкой данных из MYSQL | Di_Mon | Вебмастеру | 15 | 20-12-2005 23:51 | |
удаления баз данных из MySQL | Vlad Drakula | Вебмастеру | 3 | 10-07-2003 00:53 |
|