[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос в базу
questioner
Здраствуйте не получается составить запрос к базе, база такая:
id, nickname, еще пару колонок не имеющих сути в данном вопросе, id - уникальный а вот никнейм может повторяться, так вот, я вытаскивал раньше из базы строки таким образом:
SELECT * FROM my_table ORDER BY id DESC LIMIT 0,20

начало лимита меняется в зависимости от страницы
и было все здорово, но я решил переделать таким образом чтобы было все не одним сплошным потоком. Хочу сделать чтобы вытаскивалось 20ть записей но от каждого nickname'a не более 4х строк возвращалось (тоесть 4 id чтоб вернула и не более того), тоесть если подряд идут записи от одного никнейма то не более 4х доставало, если мение то сколько там есть. Пробовал с помощью HAVING COUNT(nick) <=4, не получилось, есть идеи у когонибудь?



Спустя 23 минуты, 47 секунд (15.10.2011 - 22:39) questioner написал(а):
вообще что еще понять немогу так это как доставать из базы ограниченное количество записей каким нибудь другим способом кроме как LIMIT есть ли такой вообще?

Спустя 1 час, 1 минута, 47 секунд (15.10.2011 - 23:41) Xes написал(а):
сразу все и вместе не получиться
Цитата
select * from table1 where nik=nikneme Limit 4

Спустя 1 час, 23 минуты, 10 секунд (16.10.2011 - 01:04) questioner написал(а):
тоесть только через циклы как то вытаскивать сначала 20 строк затем проверять чтобы на один никнейм не более 4х строк приходилось, отбрасывать лишнее и лезть опять в базу вытаскивать еще ряды чтобы дошло до 20ти??

Спустя 10 часов, 9 минут, 33 секунды (16.10.2011 - 11:14) questioner написал(а):
никто не знает??

Спустя 4 часа, 23 минуты, 16 секунд (16.10.2011 - 15:37) questioner написал(а):
подкинте идей пожалуйста

Спустя 12 минут, 8 секунд (16.10.2011 - 15:49) imbalance_hero написал(а):
Я не понимаю смысла выводить по 4 никнейма повторяющихся ПОДРЯД на страницу. При этом, чтобы не выводились они 5 раз подряд.

Спустя 3 дня, 4 часа, 28 минут, 41 секунда (19.10.2011 - 20:18) questioner написал(а):
imbalance_hero
представь себе страницу на которой 20ть сообщений, (они обновляются как на твитере), чем позже добавленны тем в списке раньше (первые на страничке), к примеру если юзер с ником "nick-1" добавит 10 сообщений подрят что же это будет?!, это ни к чему, но в тоже время ограничивать его одним сообщением которое отображается в списке слишком мало (в то время как она написал 10), поэтому 4 сообщения от одного юзера на страницу вполне разумно, как сделать запрос из
SELECT * FROM my_table ORDER BY id DESC LIMIT 0,20

в запрос который работал как я описал, не знаю, поэтому и спрашиваю, делать циклом считаю довольно ресурсозатратным

Спустя 35 минут, 8 секунд (19.10.2011 - 20:53) imbalance_hero написал(а):
questioner
Если идут ответы по порядку, упаковывай их в 1 ответ, а не создавай и плоди...

Спустя 19 секунд (19.10.2011 - 20:53) imbalance_hero написал(а):
А потом вот так!

Спустя 42 секунды (19.10.2011 - 20:54) imbalance_hero написал(а):
Я теперь я опять флужу smile.gif

Упаковку можешь либо склеиванием с сохранением стилей, либо пакетами, как сейчас сделано на gmail.

Спустя 2 часа, 33 минуты, 14 секунд (19.10.2011 - 23:27) questioner написал(а):
хм, ну чтож, спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.