![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
пробовал ? |
|||
|
||||
DooZ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
INSERT INTO `images` (`id`, `url`, `thumb`, `shows`) VALUES
(1, 'http://domain1.com', 'http://domain1.com/image1.jpg', '0'), (2, 'http://domain1.com', 'http://domain1.com/image2.jpg', '0'), (3, 'http://domain1.com', 'http://domain1.com/image3.jpg', '0'), (4, 'http://domain2.com', 'http://domain2.com/image1.jpg', '0'), (5, 'http://domain2.com', 'http://domain2.com/image2.jpg', '0'), (6, 'http://domain2.com', 'http://domain2.com/image3.jpg', '0'), (7, 'http://domain3.com', 'http://domain3.com/image1.jpg', '0'), (8, 'http://domain3.com', 'http://domain3.com/image2.jpg', '0'), (9, 'http://domain3.com', 'http://domain3.com/image3.jpg', '0'), вот данные в таблице может быть так будет более понятно далее делаю запрос: select id from images group by url order by shows выдает 1, 4, 7 (кто-то может спросит почему нельзя сделать запрос просто: select id from images order by shows) отвечу: мне надо уникальные урл (1 урл = 1 картинка) итак после того как выдали ИД я увеличиваю их значения shows 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=7 и снова делаю запрос: select id from images group by url order by shows НО мне выдает 1, 4, 7 а надо что бы выдало что-то вроде: 2, 5, 8 т.е. те ИД у которых shows меньше есть вопросы? Добавлено через 1 минуту и 55 секунд 2v2v - почитай последнюю мессагу я там подробно описал что нужно, может теперь объяснил как надо ![]() Добавлено через 3 минуты и 32 секунды
не катит, тоже самое выдает (если смотреть последний пример) то так же 1, 4, 7 вместо 2, 5, 8 Это сообщение отредактировал(а) DooZ - 27.5.2008, 22:13 |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Это сообщение отредактировал(а) Fortop - 27.5.2008, 22:17 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
DooZ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
выдает 2, 3, 5, 6, 8, 9 а должно 2, 5, 8 т.к. 3, 6, 9 это дубликаты урла |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
не понял дубликаты чего?
ну так и сделай еще один GROUP
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
DooZ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
работает, ПОЧТИ верно если обновлять все shows которые она вывела то будет выдавать как надо НО если будет вот так как у меня сейчас: 1 http://domain1.com http://domain1.com/image1.jpg 1 2 http://domain1.com http://domain1.com/image2.jpg 1 3 http://domain1.com http://domain1.com/image3.jpg 1 4 http://domain2.com http://domain2.com/image1.jpg 1 5 http://domain2.com http://domain2.com/image2.jpg 1 6 http://domain2.com http://domain2.com/image3.jpg 1 7 http://domain3.com http://domain3.com/image1.jpg 1 8 http://domain3.com http://domain3.com/image2.jpg 1 9 http://domain3.com http://domain3.com/image3.jpg 0 т.е. все кроме 9-го ИД имеют shows равный 1 при запросе вида: SELECT id FROM images WHERE shows IN (SELECT DISTINCT MIN(shows) FROM images GROUP BY url) GROUP BY url выдает 1, 4, 7 а должно поидее выдать 1, 4, 9 (так как ИД-9 имеет меньше shows чем 7) есть идеи? Добавлено через 1 минуту и 6 секунд а вообще если кто-то действительно может помочь, то не поленитесь создайте табличку в мискуле как я вверху написал заполните ее и протестируйте очень надо решить эту задачу... |
||||
|
|||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Сделай отдельно на той таблице, что ты привел только что
и проверь, действительно ли у твоего http://domain3.com есть 0 shows Добавлено через 2 минуты и 25 секунд А еще лучше вот так
-------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
DooZ |
|
||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
абсолютно точно ИД9 имеет shows = 0 я в таблице работаю и выдаю именно оттуда инфу вот экспорт если есть сомнения (таблица вместо images, называется galleries, но это не имеет значние)
Добавлено через 3 минуты и 8 секунд на предположениях долго будем выяснять как сделать ![]() надо тестить на таблице, последний пример: SELECT id FROM galleries JOIN (SELECT DISTINCT url, MIN(shows) AS minshow FROM galleries GROUP BY url) AS S ON S.minshow = galleries.shows AND S.url = galleries.url выводит: 1, 2, 3, 4, 5, 6, 9 а надо просто: 1, 4, 9 в данном случае (т.к. у ИД9 shows = 0) |
||||||||
|
|||||||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
вот этот подзапрос вернёт не правильные url -ы |
|||
|
||||
DooZ |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Добавлено через 1 минуту и 19 секунд Что значит неправильные? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
те которые первые в списке тоесть соответствуют ид 1,4,7 не смотря на то , что ты выбрал минимальное количество показов. |
|||
|
||||
DooZ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
проверил, работает как надо огромное спасибо за помощь ![]() побольше бы таких профессиональных людей!!! останется теперь протестировать при нагрузке скажем в 100к урл, но это уже позже ![]() |
||||
|
|||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
можно попробовать что то вроде
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 4 Всего: 42 |
Он нам нужен только для того чтобы выбрать минимальное количество показов для конкретного урл. Дальше мы его джойним с основной таблицей и группируем по урл. Если будет несколько id с минимальным значением - то серевер выберет первый попавшийся из данного урл. Добавлено через 2 минуты ты просто реверсировал запрос -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |