Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Выбор данных из mysql с приоритетом ?

Ответить
Настройки темы
Выбор данных из mysql с приоритетом ?

Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос:
Есть таблица в mysql, с которой выбирается строка следующим образом:
SELECT * FROM table WHERE X ORDER BY RAND() LIMIT 1

в таком случае случайным образом выбирается строка из таблицы. А можно ли как-нибудь сделать, чтоб у некоторых строк был приоритет выборки выше, т.е. они чаще выбирались?

Отправлено: 13:12, 06-10-2005

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


m2001
SELECT *, pr=pr*RAND() FROM table WHERE X ORDER BY pr LIMIT 1

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 15:14, 06-10-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Vlad Drakula
Если pr - это ячейка таблицы со значением приоритета, то при такой схеме у меня оно равно нулю.

Такой запрос не совсем подходит.

Мне надо реализовать следуещее:
Предположим, в таблице есть три строки. У каждой задан приоритет, у первой -5, у второй - 3, у третей - 2.
Из php-скрипта мы посылаем запрос в базу. И надо, чтоб при 10 последовательных запусков скрипта информация из первой строки выбиралась 5 раз, из второй 3 раза и из третьей 2 раза.

Отправлено: 18:09, 06-10-2005 | #3

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


m2001
тогда надо после выбора update-ить таблицу (или сопряженную таблицу), где крутить счетчики. Ну и выборку осуществлять с учетом счетчиков. К сожалению неверхняя ветка mysql не знает транзакций (да и в верхней они вроде как не до конца нормально сделаны), а так в транзакциях и хранимых процедурах, или в триггерах (которых и в верхней ветке, вроде нет?) таким фокусам самое место.

Отправлено: 19:05, 06-10-2005 | #4


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


эх... mysql не оправдало возложенных на неё прогнозов... и ORDER BY RAND() работает криво.

Может кто подскажет как оптимальнее сделать таблицу с баннерами и как организовать случайный выбор баннера с приоритетом ?

Отправлено: 10:50, 07-10-2005 | #5


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


m2001
я же вроде приводил тебе пример выборки?

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:44, 07-10-2005 | #6


Пользователь


Сообщения: 54
Благодарности: 0

Профиль | Отправить PM | Цитировать


Vlad Drakula
я написал что RAND() криво работает... придется самому писать эти счетчики.

Отправлено: 13:37, 10-10-2005 | #7


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


m2001
в принцепе это не сложно, но нужно не плохо продумать все чтобы достичь нужного перфоманса!

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 13:50, 10-10-2005 | #8


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


m2001
Цитата:
ORDER BY RAND() работает криво.
В смысле криво? (малость догадываюсь)
А как выпадают циферки на кубике, тоже криво?
Я думаю надо сделать еще одну табличку. В которую заносить кол-во показов. 5 показов - обнуление, 3 - обн..

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4


Отправлено: 20:18, 10-10-2005 | #9



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Выбор данных из mysql с приоритетом ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход