![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
есть таблица с картинками
id - уникальный номер url - урл страницы где эта картинка thumb - урл картинки shows - кол-во показов clicks - кол-во кликов пример: 1 http://domain.com/index.html http://domain.com/1.jpg 0 0 2 http://domain.com/index.html http://domain.com/2.jpg 0 0 3 http://domain.com/index.html http://domain.com/3.jpg 0 0 4 http://domain1.com/index.html http://domain1.com/1.jpg 0 0 5 http://domain2.com/index.html http://domain2.com/1.jpg 0 0 6 http://domain2.com/index.html http://domain2.com/2.jpg 0 0 т.е. как видите картинки уникальны, а вот урлы нет т.е. у одного урла может быть несколько картинок запрос: SELECT id FROM images GROUP BY url ORDER BY shows/(clicks+1) возвращает только первые три уникальные картинки с разных хостов (оно и понятно, т.к. групируется и все тут) как написать запрос что бы возвращались уникальные картинки (1 картинка от 1-го хоста за один раз), но(!) с учетом order by ? заранее спасибо |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
не понял что тебе надо.. покажи на примере что должно вернуться
![]() |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
забыл добавить что после выборки делается
update images set shows=shows+1 where id=текущий_id (выборка в цикле) так вот щас он выводит что-то типа: 1 4 5 увеличивает у каждого этого id счетчик shows +1 и все равно выводит 1 4 5 а надо что бы потом выводил например: 2 4 6 потом например: 3 4 5 потом 1 4 6 ну и т.д. теперь понятно? |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
||||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
еще раз повторяю
мне надо выбрать из базы УНИКАЛЬНЫЕ КАРТИНКИ а не ИД есть много одинаковых УРЛ, у каждого урл может быть от ОДНОЙ до НЕСКОЛЬКИХ картинок НО(!!!) выбрать надо ОДНУ УНИКАЛЬНУЮ КАРТИНКУ для каждого урла! т.е. будет в базе 100 урл, у каждого урла по 10 картинок (итого 1000 записей) надо выбрать 100 ИД (тоесть 100 картинок, 1 картинка = 1 урл) так понятно? |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
то что ты описываешь соответствует твоему первому запросу, который ты сказал что не правилен.
объясняйся чётче... |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
елки палки куда четче???
внесите в базу то что я дал и поймете о чем я SELECT id FROM images GROUP BY url ORDER BY shows/(clicks+1) да этот запрос возвращает три картинки в данном случае: 1 4 5 потом у каждой увеличивает shows + 1 и при следующем запросе должен вернуть уже: 2 4 6 а возвращает ВСЕ РАВНО(!!!) 1 4 5 теперь понятно???? помоему яснее уже некуда Добавлено через 1 минуту и 40 секунд для ленивых вот запросы: SELECT id FROM images GROUP BY url ORDER BY shows/(clicks+1) -> 1, 4, 5 UPDATE images SET shows=shows+1 WHERE id=1 UPDATE images SET shows=shows+1 WHERE id=4 UPDATE images SET shows=shows+1 WHERE id=5 SELECT id FROM images GROUP BY url ORDER BY shows/(clicks+1) -> 1,4,5 (а должно быть что-то вроде: 2,4,6) вот |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
![]() ![]() ![]() Добавлено через 34 секунды запрос у тебя возвращает ID , а ты изменяешь поле SHOWS )) |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
ты видимо издиваешься или не внимательно читал посты?
SELECT id FROM images GROUP BY url ORDER BY shows/(clicks+1) я выбираю значиния исходя (сортируя) ПО shows/(click+1) выбираться должна та картинка которая меньше всего была показана! |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
странно.
если тебе надо уникальные картинки, а id никакого отношения к картинкам не имеет, то что для каждой картинки уникально? thumbs? если да, то почему группируешь по url, когда для картинки уникально только thumbs? если нет, то как вообще на такой структуре определяется отдельная уникальная картинка? туда. туда четче. вместо истерик лучше бы внятно объяснил, что у тебя есть и что тебе надобно. если держишь нас за идиотов, зачем вопросы задаешь? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Ничерта не понятно ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
не дели на кликс + 1
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Если я правильно помню, то никак. Поскольку в подзапросах ORDER BY не работает. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
я никого не держу за идиотов, я помоему достаточно внятно объяснил уже несколько раз
что нужно выбрать из базы ИД картинок одна картинка = один урл у одного урл может быть сотня картинок но надо выбрать только одну отсортированную по показам (order by shows) попробую еще раз в базе нет уникальных элементов как таковых есть совокупность этих самых элементов урл, у этой урл есть картинки, у каждой картинки есть кол-во показов надо просто выбрать ИД этих картинок, НО так что бы не было совпадающих УРЛ т.е. одна картинка один урл пример: урл1 = (ид1 -> картинка1 - 0 показов, ид2 ->картинка2 - 0 показов, ид3 ->картинка3 - 0 показов) урл2 = (ид4 ->картинка4 - 0 показов, ид5 ->картинка5 - 0 показов, ид6 ->картинка6 - 0 показов) урл3 = (ид7 ->картинка7 - 0 показов, ид8 ->картинка8 - 0 показов, ид9 ->картинка9 - 0 показов) в первый раз делаем выборку: должно выдать что-то типа: ид1, ид4, ид7 далее делаем увеличение показов: ид1 -> показы + 1 ид4 -> показы + 1 ид7 -> показы + 1 далее опять делаем выборку и должно выдать что-то типа (вот тут внимание) ид2, ид5, ид8 далее делаем увеличение показов: ид2 -> показы + 1 ид5 -> показы + 1 ид8 -> показы + 1 и опять делаем выборку: должно выдать: ид3, ид6, ид9 опять увеличиваем показы этих ИД ид3 -> показы + 1 ид6 -> показы + 1 ид9 -> показы + 1 и все по кругу должно выдавать т.е. опять ид1, ид4, ид7 и т .д. теперь понятно? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Хотя можно попробовать реализовать что-то вроде
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |